2013-02-08 100 views
1

我想統計失敗的測試,並在所有測試完成後僅失敗一次。這些測試每晚由Jenkins運行,並在出現故障或錯誤時報告結果。問題是我甚至無法開始計數,因爲這隻有failureProperty和errorProperty可以是true或false,但是當它到達第一個失敗或錯誤測試時,它會停止並失敗。我沒有找到與谷歌良好的解決方案,他們推薦我這些屬性,但他們沒有做我所需要的。ANT Jenkins單元測試 - 計數失敗測試

這裏是代碼:

 <junit printsummary="true" fork="yes" forkmode="once" 
showoutput="false" haltonfailure="no" maxmemory="1024m" 
errorProperty="test.failed" failureProperty="test.failed"> 
      <classpath refid="junit.classpath" /> 
      <batchtest fork="yes" todir="${junit.dir}/raw" > 
       <formatter type="xml" /> 
       <fileset dir="${classes.dir}"> 
        <include name="**/*Test.class" /> 
        <exclude name="*ear*/**"/> 
        <exclude name="**/Base*.class" /> 
        <exclude name="**/JNDI*.class" /> 
       </fileset> 
      </batchtest> 
     </junit> 
    <fail message="At least one test failed or has errors, please check test results in Jenkins to see details!" if="test.failed" /> 

難道我錯過了什麼重要呢?看來haltonfailure =「no」參數在這種情況下不起作用。

如果你能幫助我,請提前致謝!

+1

可能的重複[我如何讓Ant JUnit任務運行所有測試,然後在任何測試失敗時停止構建的其餘部分](http://stackoverflow.com/questions/4038547/how-我可以擁有螞蟻junit任務運行所有測試然後停止其餘的這個BU) – Miquel 2013-02-08 14:24:55

+0

我發現了什麼問題。 _errorProperty =「test.failed」failureProperty =「test.failed」_與_fail_一起工作我有更多的單元測試,所以腳本只能存活第一個!我有點失明,但是這給了我一個想法。謝謝你們! – CsBalazsHungary 2013-02-08 14:33:09

+1

爲了記錄,我做了一個全局變量,它是錯誤的,如果測試失敗,我切換爲真。然後,我運行所有單獨的測試,並將其稱爲失敗螞蟻方法。 – CsBalazsHungary 2013-02-08 14:47:34

回答

1

您需要使用螞蟻的junitreport生成報告。這會輸出一個xml文件,如果你有興趣的話,jenkins會很好地計數和顯示給你,還有演化圖表等等。

+0

感謝它會很好,但在這種情況下,我可以在螞蟻中調用嗎?我的意思是詹金斯需要這個發送警告郵件。這是爲什麼我需要這個,因爲我想在發送失敗時發送郵件。 – CsBalazsHungary 2013-02-08 14:08:01

+0

@CsBalazsHungary Jenkins默認情況下不會失敗構建測試失敗。相反,它會認爲它「不穩定」。所以,你會得到三種可能的結果(所有這些都可以發送電子郵件,如果你想的話):藍色=成功,黃色=不穩定(測試失敗),紅色=失敗 – Miquel 2013-02-08 14:10:10

+0

嗯,但我編輯的問題,它不清楚我真的想要這個。:) – CsBalazsHungary 2013-02-08 14:10:20

1

將JUnit屬性haltonerrorhaltonfailure設置爲false。然後使用各種報告工具來解析生成的報告。該報告可以採用XML格式,您可以使用JUnitreport來解析文件。我更喜歡Jenkins,它會向我展示每個構建,以及失敗的JUnit測試的數量,以及各種不錯的報告。其他人使用各種XSLT程序(這實際上是JUnitreport的)。

Word'o警告:如果您使用JUnitReport,則可能需要在Ant的lib目錄中添加一些額外的jar。我有一段時間沒有使用JUnitReport,但是我記得我需要Xalan,但是這是Java現在提供的。

+0

不幸的是,如果我使用errorproperty和failureproperty,然後使用這些屬性失敗,單元測試會在首次發生故障或錯誤時停止運行。但是,謝謝,如果沒有辦法殺死ant任務,這將是有用的 – CsBalazsHungary 2013-02-08 14:17:26

1

另外檢查this answer從另一個類似的問題如何配置您的junit目標執行和報告生成。生成報告後,使用JUnit測試報告生成後生成操作進行配置。

還有你試過用printsummary =「withOutAndErr」並檢查?這對我來說完全正常。