IntelliJ IDEA 调试器在调试 Maven 测试时跳过断点
Posted
技术标签:
【中文标题】IntelliJ IDEA 调试器在调试 Maven 测试时跳过断点【英文标题】:IntelliJ IDEA debugger skips breakpoints when debugging Maven tests 【发布时间】:2011-09-28 05:36:22 【问题描述】:我正在尝试在 IntelliJ IDEA 中调试 Maven 测试。当我打开 IDEA 的 Maven 项目 视图并右键单击 test 目标时,我可以选择调试它。单击它会执行此目标,但执行不会在任何断点处停止。我错过了什么?
谢谢。
【问题讨论】:
Idea 调试器似乎对 junit 项目有很好的支持。我创建了一个启用了 junit 的调试配置,一切正常。 【参考方案1】:如果您使用 maven failsafe 而不是 surefire 运行单元测试,那么调试器将不会停止,您必须手动运行故障安全调试器命令行,然后 intellij 将能够在断点处停止。我不确定在故障保护上使用 <forkMode>never</forkMode>
选项是否可以解决此问题。
正如我在这里描述的:https://github.com/djangofan/maven-failsafe-debug-example
【讨论】:
【参考方案2】:一种解决方案是使用远程调试:
配置surefire插件:<debugForkedProcess>true</debugForkedProcess>
;
运行测试(将等待远程调试器连接)
在 IntelliJ 中创建并运行远程调试配置(将命中您的断点);要连接的端口是 5005。【讨论】:
比在 pom 中更改配置更简单:从 shell 运行 w/-Dmaven.surefire.debug
。【参考方案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>
【讨论】:
forkMode
已弃用。请改用<forkCount>0</forkCount>
。【参考方案4】:
您的依赖源与二进制代码不匹配。确保您使用相同的来源。
【讨论】:
不……不幸的是,事情没那么简单。这是关于 Maven 运行测试的单独进程。如果您阻止分叉,调试器将停止,但由于某种原因它总是停止,即使我尝试运行而不是调试。以上是关于IntelliJ IDEA 调试器在调试 Maven 测试时跳过断点的主要内容,如果未能解决你的问题,请参考以下文章