[英]Trying to run ANT JUnit target in debug mode in Eclipse
這是我的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>
我的單元測試如果在Eclipse中運行則通過,但如果我從ANT中清洗它們則會失敗。 我希望它在單元測試中停在我的斷點處。 從文檔我知道我需要添加這些jvmarg但不能讓它停止所以我顯然沒有在正確的地方。 另外,我認為我沒有正確的端口,但我應該使用哪個端口? 在通過eclipse調試JUnits時我沒有設置任何調試端口,它只是起作用
您需要忘記在Eclipse中運行JUnit測試和ANT目標的時刻。 你想要的是調試碰巧有主類org.apache.tools.ant.Main
的Java應用程序,它可以從命令行用ant
啟動。
您現在有兩個選項:您可以創建一個調用org.apache.tools.ant.Main
的啟動配置,但設置起來非常復雜(您必須復制ant
腳本在啟動時執行的所有操作)。
另一種方法是正確配置ant
。 在你的情況下,測試在ant
進程中運行,但我知道沒有簡單的方法將-Xdebug
傳遞給Ant本身。 因此,您必須在新進程中運行測試。 將其添加到junit
任務:
<junit fork="yes" forkmode="once" ...>
如果沒有這個, jvmarg
參數將被忽略。
下一步是在Eclipse中創建調試配置。 本文詳細解釋了這一點。 對你來說,只有“結論”之前的最后一部分才是重要的。
詳細說明:
取自這里 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.