这是我的ANT JUnit目标
<target name="test" depends="compile" >
<junit failureProperty="test.failure" >
<jvmarg value="-Xdebug" />
<jvmarg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5432" />
<classpath>
<pathelement path="${basedir}\..\Core\lib\junit-4.10.jar"/>
<pathelement path="${basedir}\..\Suggestion\lib\ssce.jar"/>
<pathelement path="C:\Java\javamail-1.4.1\mail.jar"/>
<pathelement path="C:\Java\commons-net-2.0\commons-net-ftp-2.0.jar"/>
<pathelement path="${basedir}\WebContent\WEB-INF\lib\gson-2.2.1.jar"/>
<pathelement path="${tomcatLibs}\servlet-api.jar"/>
</classpath>
<classpath>
<pathelement path="${build}"/>
</classpath>
<formatter type="brief" usefile="false" />
<test name="com.server.junit.ServerTestSuite" />
<test name="com.junit.DictionaryTestSuite" />
<test name="com.util.junit.SuggestionTestSuite" />
</junit>
<fail message="Unit test failed" if="test.failure"/>
</target>
Run Code Online (Sandbox Code Playgroud)
我的单元测试如果在Eclipse中运行则通过,但如果我从ANT中清洗它们则会失败.我希望它在单元测试中停在我的断点处.从文档我知道我需要添加这些jvmarg但不能让它停止所以我显然没有在正确的地方.另外,我认为我没有正确的端口,但我应该使用哪个端口?在通过eclipse调试JUnits时我没有设置任何调试端口,它只是起作用
Aar*_*lla 10
您需要忘记在Eclipse中运行JUnit测试和ANT目标的时刻.你想要的是调试碰巧有主类的Java应用程序,org.apache.tools.ant.Main
并且可以ant
从命令行启动它.
您现在有两个选项:您可以创建一个调用的启动配置,org.apache.tools.ant.Main
但设置起来非常复杂(您必须复制ant
脚本在启动时执行的所有操作).
另一种方法是ant
正确配置.在您的情况下,测试在该ant
过程中运行,但我知道没有简单的方法传递-Xdebug
给Ant本身.因此,您必须在新进程中运行测试.将此添加到junit
任务:
<junit fork="yes" forkmode="once" ...>
Run Code Online (Sandbox Code Playgroud)
如果没有这个,jvmarg
参数将被忽略.
下一步是在Eclipse中创建调试配置.本文详细解释了这一点.对你来说,只有"结论"之前的最后一部分才是重要的.