在 GitHub 上叉我

调试测试

有时您需要完全按照 Maven 运行测试的方式进行调试。这是如何做!

分叉测试

默认情况下,Maven 在单独的(“分叉”)进程中运行您的测试。您可以使用该maven.surefire.debug属性远程调试分叉测试,如下所示:

mvn -Dmaven.surefire.debug test

测试将自动暂停并等待端口 5005 上的远程调试器。然后您可以使用 Eclipse 附加到正在运行的测试。您可以通过菜单命令“运行”>“打开调试对话框...”设置“远程 Java 应用程序”启动配置

如果需要配置不同的端口,可以传递更详细的值。例如,下面的命令将使用端口 8000 而不是端口 5005。

mvn -Dmaven.surefire.debug="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -Xnoagent -Djava.compiler=NONE" test

非分叉测试

forkCount您可以通过将配置参数设置为 0来强制 Maven 不分叉测试。

mvn -DforkCount=0 test

然后你需要做的就是调试 Maven 本身。从 Maven 2.0.8 开始,Maven 附带了一个mvnDebugshell 脚本,您可以使用它来启动带有方便调试选项的 Maven:

mvnDebug -DforkCount=0 test

然后您可以将 Eclipse 附加到 Maven 本身,这可能比调试分叉的可执行文件更容易/更方便。