提问人:kaqqao 提问时间:7/4/2011 更新时间:5/10/2023 访问量:17991
IntelliJ IDEA 调试器在调试 Maven 测试时跳过断点
IntelliJ IDEA debugger skips breakpoints when debugging Maven tests
问:
我正在尝试在IntelliJ IDEA中调试Maven测试。当我打开 IDEA 的 Maven 项目视图并右键单击测试目标时,我得到了一个调试它的选项。单击它可执行此目标,但执行永远不会在任何断点处停止。我错过了什么?
谢谢。
答:
0赞
carlspring
7/4/2011
#1
依赖项的源与二进制代码不匹配。确保您使用的是相同的来源。
评论
0赞
kaqqao
7/5/2011
不。。。不幸的是,事情并没有那么简单。这是关于 Maven 运行测试的单独进程。如果阻止分叉,调试器将停止,但由于某种原因,它始终停止,即使我尝试运行而不是调试。
24赞
milan
12/1/2011
#2
一种解决方案是使用远程调试:
配置 SureFire 插件:
<debugForkedProcess>true</debugForkedProcess>
;运行测试(将等待远程调试器连接)
- 在 IntelliJ 中创建并运行远程调试配置(将命中断点);要连接到的端口是 5005。
评论
5赞
wwerner
2/14/2020
甚至比在 pom 中更改配置更简单:从 shell 运行 w/。-Dmaven.surefire.debug
2赞
Joseph K. Strauss
2/24/2022
更简单:.这将自动打开调试器,而无需在 IntelliJ 中运行新的调试器配置-DforkCount=0
33赞
defectus
4/7/2013
#3
只需禁用分叉模式 - 在您的 pom 文件中(在 project/build/plugins 部分下)中类似这样的东西:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.14</version>
<configuration>
<forkMode>never</forkMode>
</configuration>
</plugin>
评论
17赞
Marco Biscaro
8/14/2014
forkMode
已弃用。请改用。<forkCount>0</forkCount>
2赞
djangofan
2/5/2019
#4
如果您使用 maven failsafe 而不是 surefire 运行单元测试,则调试器不会停止,您必须手动运行故障保护调试器命令行,然后 intellij 将能够在断点处停止。我不确定使用故障保护选项是否解决了这个问题。<forkMode>never</forkMode>
正如我在这里描述的那样:https://github.com/djangofan/maven-failsafe-debug-example
0赞
Codebling
5/10/2023
#5
在命令行上,设置环境变量起作用。在 linux 中,您可以在命令行上执行此操作:MAVEN_OPTS=-DforkCount=0
MAVEN_OPTS=-DforkCount=0 MAVEN_DEBUG_ADDRESS=0.0.0.0:8000 mvnDebug test
评论
mvn -Dmaven.surefire.debug test