如何更轻松地调试maven surefire测试(使用eclipse作为调试服务器)
我正在使用maven/surefire/eclipse编写一些代码,然后对其进行测试/调试 标准方法是使用maven.surefire.debug maven属性。默认情况下,启用此属性后,maven开始侦听端口5005,我可以使用远程调试器连接到已调试的进程。测试完成后,远程调试器将与服务器断开连接 在eclipse中使用时,此过程包括两个步骤:如何更轻松地调试maven surefire测试(使用eclipse作为调试服务器),eclipse,maven-2,debugging,surefire,Eclipse,Maven 2,Debugging,Surefire,我正在使用maven/surefire/eclipse编写一些代码,然后对其进行测试/调试 标准方法是使用maven.surefire.debug maven属性。默认情况下,启用此属性后,maven开始侦听端口5005,我可以使用远程调试器连接到已调试的进程。测试完成后,远程调试器将与服务器断开连接 在eclipse中使用时,此过程包括两个步骤: 跑马文 使用远程启动配置进行连接 我希望实现的目标是将其简化为: 跑马文 我发现,将maven.surefire.debug属性设置为某些远程调试选
有人知道这是否正常,或者我需要指定一些额外的选项来简化maven测试的调试吗 如果您使用的是m2eclipse,为什么不简单地用鼠标右键单击然后调试>Maven test?贡献得有点晚,但认为还是值得的 在Eclipse调试配置中,创建“Maven build”调试配置: 目标=-Dmaven.surefire.debug测试 Profiles=myconfigprofile,weblogic 或者对于特定的测试套件: Goals=-Dmaven.surefire.debug-Dtest=com.myorg.mypkg/MyTestSuite.java测试 Profiles=myconfigprofile,weblogic 注意:不要将这些道具放在“JRE/jvm参数”中,因为这似乎不会暂停 创建其他“远程Java应用程序”配置: 主机=本地主机 端口=5005 默认情况下,运行/调试mvn构建将停止并侦听5005 启动远程调试配置将附加 另见: 简单方法:
1. Open the Debug As > .. dialogue box
2. In the goal text box, give
-DforkMode=never test
3. Run the debug project
如果您使用的是Maven 2.0.8+,那么它将非常简单 请参考我的答案
这是正确的行为。WebSphere是一个服务器,因此它会持续侦听调试器。测试运行并在特定时刻完成执行(与maven会话一起)。您还可以多次断开并连接到Maven,但只要测试的执行持续一段时间。@Henryk Konsek-这就是为什么我想让eclipse成为服务器,并让测试引擎连接到它。我已经尝试过了,但它什么也没做。我需要任何东西来配置它吗?另一方面,“作为junit测试进行调试”工作正常。事实上,这对我来说已经足够了。调试>Maven测试真的什么都做不了。mateusz.fiolka的方式似乎是唯一适合我的方式,运行测试然后启动远程调试器真的很烦人,直到我需要先运行应用程序,然后再连接到它。我的问题是找到一种一步到位的方法。但是,我不确定当前的Java远程调试体系结构是否可行。很抱歉。可能是点错了。现在改为向上投票。哦现在不行。对不起,不用担心。。。我只是好奇。我得到了一个失败的执行目标org.apache.maven.plugins:maven-surefire-plugin:2.4.2:test(默认测试)对项目x:有测试失败。你搜索过这个问题吗?请看。我接受这个答案,尽管这种方法有风险(如这里所解释的:)。以这种方式调试运行的类将与Maven共享类路径,这可能会导致一些问题。“[警告]自版本2.14以来,参数forkMode已被弃用。请改用forkCount和ReuseWorks”。这就是maven现在所说的。不,这仍然是两个步骤——从控制台运行,从eclipse运行。