Unit testing IntelliJ IDEA调试器在调试Maven测试时跳过断点
我正在尝试用IntelliJ IDEA调试Maven测试。当我打开IDEA的Maven项目视图并右键单击测试目标时,我得到了一个调试它的选项。单击它将执行此目标,但执行不会在任何断点处停止。我错过了什么Unit testing IntelliJ IDEA调试器在调试Maven测试时跳过断点,unit-testing,maven-2,junit,intellij-idea,Unit Testing,Maven 2,Junit,Intellij Idea,我正在尝试用IntelliJ IDEA调试Maven测试。当我打开IDEA的Maven项目视图并右键单击测试目标时,我得到了一个调试它的选项。单击它将执行此目标,但执行不会在任何断点处停止。我错过了什么 谢谢。您的依赖项源代码与二进制代码不匹配。确保使用相同的源。一种解决方案是使用远程调试: 配置surefire插件:true 运行测试(将等待远程调试器连接) 在IntelliJ中创建并运行远程调试配置(将命中断点);要连接的端口是5005 只需在pom文件中禁用forked模式(在projec
谢谢。您的依赖项源代码与二进制代码不匹配。确保使用相同的源。一种解决方案是使用远程调试:
true
只需在pom文件中禁用forked模式(在project/build/plugins部分下):
org.apache.maven.plugins
maven surefire插件
2.14
从未
如果您使用maven failsafe而不是surefire运行单元测试,那么调试器将不会停止,您必须手动运行failsafe调试器命令行,然后intellij将能够在断点上停止。我不确定在故障保护上使用never
选项是否能解决此问题
正如我在这里所描述的:不。。。不幸的是,事情并没有那么简单。这是关于Maven在其中运行测试的独立进程。如果您阻止分叉,调试器将停止,但由于某种原因,它总是停止,即使我尝试运行而不调试。使用以下命令在IntelliJ(或Eclipse)外部运行应用程序:
mvn-Dmaven.surefire.debug test
,然后连接到正在运行(但正在等待)的实例,如@milan所建议的(+1)对我来说很有用。看来Idea调试器对junit项目有很好的支持。我创建了一个启用junit的调试配置,一切正常。forkMode
不推荐使用。改为使用0
。甚至比在pom中更改配置更简单:从shell运行w/-Dmaven.surefire.debug
。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.14</version>
<configuration>
<forkMode>never</forkMode>
</configuration>
</plugin>