如何更轻松地调试maven surefire测试(使用eclipse作为调试服务器)

mat*_*lka 26 eclipse debugging maven-2 surefire

我正在使用maven/surefire/eclipse编写一些代码,然后再进行测试/调试.

标准方法是使用maven.surefire.debug maven属性.默认情况下,启用此属性后,maven将开始侦听端口5005,并且我可以使用远程调试器附加到已调试的进程.当测试完成远程调试器与服务器的连接时.

在eclipse中使用时,此过程涉及两个步骤:

  1. 跑maven
  2. 使用远程启动配置连接

我想要实现的是将其减少为:

  1. 跑maven

我发现,将maven.surefire.debug属性设置为某些远程调试选项将改变远程调试行为.因此,当我指定ie

-Dmaven.surefire.debug =" - Xdebug -Xrunjdwp:transport = dt_socket,server = n,address = 5005"

然后build将尝试连接到我的eclipse进程,监听端口5005.这样我就可以反转maven和eclipse的默认客户端/服务器角色.

然而,这种方法存在一个大问题.它没有给我任何东西,因为在maven构建完成后,eclipse停止在服务器端口上侦听.这是我不理解的部分.当我作为调试客户端从eclipse连接到例如WebLogic服务器时,它允许我根据需要自由连接/断开连接.

任何人都知道这是否正常,或者我是否需要指定一些额外的选项来使调试maven测试更容易?

小智 21

简单方法:

1. Open the Debug As > .. dialogue box
2. In the goal text box, give
     -DforkMode=never test
3. Run the debug project
Run Code Online (Sandbox Code Playgroud)


wmo*_*365 19

贡献迟了但认为它还值得.

在Eclipse调试配置中,创建"Maven build"调试配置:

目标= -Dmaven.surefire.debug测试

个人资料= myconfigprofile,weblogic

或者对于特定的TestSuite:

目标= -Dmaven.surefire.debug -Dtest = com.myorg.mypkg/MyTestSuite.java测试

个人资料= myconfigprofile,weblogic

注意:不要将道具放在"JRE/jvm参数"中,因为这似乎没有暂停

创建其他"远程Java应用程序"配置:

Host = localhost

端口= 5005

默认情况下,运行/调试mvn构建将停止并侦听5005.

启动远程调试配置将附加.

另见:http: //maven.apache.org/plugins/maven-surefire-plugin/examples/debugging.html