我正在使用maven / surefire / eclipse编写一些代码,然后再进行测试/调试。
标准的方法是使用maven.surefire.debug maven属性。默认情况下,启用此属性后,maven将开始侦听端口5005,并且我可以使用远程调试器附加到已调试的进程。当测试完成远程调试器与服务器的连接时。
在eclipse中使用时,这个过程涉及两个步骤:
我想要实现的目标是将其减少为:
我发现,将maven.surefire.debug属性设置为某些远程调试选项将改变远程调试行为。因此,当我指定即。
-Dmaven.surefire.debug =“ - Xdebug -Xrunjdwp:transport = dt_socket,server = n,address = 5005”
然后build将尝试连接到我的eclipse进程,监听端口5005.这样我就可以反转maven和eclipse的默认客户端/服务器角色。
然而,这种方法存在一个大问题。它没有给我任何东西,因为在maven构建完成后,eclipse停止在服务器端口上侦听。这是我不理解的部分。 当我作为调试客户端从eclipse连接到例如WebLogic服务器时,它允许我根据需要自由连接/断开连接。
任何人都知道这是否正常,或者我是否需要指定一些其他选项以使调试maven测试更容易?
答案 0 :(得分:21)
简单方法:
1. Open the Debug As > .. dialogue box
2. In the goal text box, give
-DforkMode=never test
3. Run the debug project
答案 1 :(得分:19)
贡献迟到但认为这还值得。
在Eclipse调试配置中,创建“Maven build”调试配置:
目标= -Dmaven.surefire.debug测试
个人资料= myconfigprofile,weblogic
或针对特定的TestSuite:
目标= -Dmaven.surefire.debug -Dtest = com.myorg.mypkg / MyTestSuite.java test
个人资料= myconfigprofile,weblogic
N.B。不要把道具放在“JRE / jvm参数”中,因为这似乎没有暂停
创建其他“远程Java应用程序”配置:
Host = localhost
端口= 5005
默认情况下,运行/调试mvn构建将停止并侦听5005。
启动远程调试配置将附加。
另见: http://maven.apache.org/plugins/maven-surefire-plugin/examples/debugging.html
答案 2 :(得分:2)
如果您正在使用m2eclipse,为什么不只是右键单击,然后调试> Maven测试?
答案 3 :(得分:0)