调试测试
有时您需要完全按照 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 附带了一个mvnDebug
shell 脚本,您可以使用它来启动带有方便调试选项的 Maven:
mvnDebug -DforkCount=0 test
然后您可以将 Eclipse 附加到 Maven 本身,这可能比调试分叉的可执行文件更容易/更方便。