在eclipse中调试ant中的junit测试代码

eclipse本来提供junit的运行和调试功能,但是在大型项目开发中往往,用ant来维护整个代码的编译,打包和测试。而在测试前往往会进行环境的配置,这些配置往往是由ant来完成,所以测试的入口也是从运行ant开始的,但是我们又想对某个junit的测试代码进行调试就不好处理了。

 

解决办法:在ant脚本中,对junit启动远程调试功能。

 

eclipse中有远程调试功能,可以对非同一个jvm中运行的java程序进行调试。相关的方法可见:http://www.ibm.com/developerworks/cn/opensource/os-eclipse-javadebug/

 

在ant中要使用相同方法,也不复杂。

假设要调试一个junit测试:

<JUnit printsummary="yes" fork="yes" dir=".">
   <jvmarg line="-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=9002"/>

....

   <batchtest>
    <fileset dir="tests/src">
     <include name="**/jaxrpc/TestUtils.java"/>
    </fileset>
   </batchtest>
  </JUnit>

注意红色部分,此时这个junit启动了远程调试,当ant运行至此会打印waiting for vm to connect at port 9002...。此时新建一个远程调试连接到9002,在这个测试的对应java代码上打上断点,就能进行调试了。

 

同样的方法,所有支持<jvmarg >标签的任务都能这么来调试。

你可能感兴趣的:(java,eclipse,ant,JUnit,测试,include)