2012-01-17 39 views
1

我有一個單元測試,它包含6個測試用例(@Test -annotated方法),當我將Java文件作爲JUnit測試運行時(從Eclipse工作臺內部運行) 。但是,當我去從buildscript運行run-tests Ant目標,他們失敗,出現以下控制檯輸出:JUnit測試在Eclipse工作臺中傳遞,但在Ant中失敗

[junit] Running com.me.myproject.WidgetTest 
[junit] Tests run: 6, Failures: 6, Errors: 0, Time elapsed: 1.737 sec 
[junit] Test com.me.myproject.WidgetTest FAILED 

這裏是run-tests目標的JUnit的部分:

<junit fork="yes" forkmode="once" dir="${basedir}" printsummary="yes" haltonerror="no" haltonfailure="no"> 
    <classpath> 
     <path refid="test.class.path"/> 
     <pathelement location="${mainBuildDir}"/> 
     <pathelement location="${testBuildDir}"/> 
    </classpath> 

    <formatter type="xml"/> 

    <batchtest todir="${genUnitTestReportsDir}"> 
     <fileset dir="${testJavaSrcDir}"> 
     <include name="**/*Test*.java"/> 
     </fileset> 
    </batchtest> 
</junit> 

有人曾經聽到這種情況?有沒有辦法從JUnit的ant任務中獲得更多(詳細)輸出?有什麼好的方法來調試這裏發生的事情?提前致謝!

+0

最簡單的調試方法是在測試中添加一堆System.out.println語句,以查看發生了什麼。 – yatskevich 2012-01-17 12:43:18

+0

順便說一句,看看junit Ant任務的'showoutput'參數。 http://ant.apache.org/manual/Tasks/junit.html – yatskevich 2012-01-17 12:46:29

+0

你有失敗測試的輸出嗎? – helios 2012-01-17 14:10:38

回答

0

我在使用Hibernate/Hypersonic SQL進行測試時遇到了寫入數據庫的類的類似問題。在eclipse中運行測試時Hypersonic連接的壽命比螞蟻使用的要短得多。因此,在Eclipse的每個測試結束時,數據庫都會被刪除,但是從測試到螞蟻內部都會停留。

如果您在數據庫中寫入數據,則需要在拆除時刪除它們以確保下一次測試不會收集數據。

0

我看不到發生異常的堆棧跟蹤。這可能是一個類路徑問題。檢查有關JUnit的Java ANT文檔,它應該可以幫助您啓用調試跟蹤。

相關問題