在日常使用的Test Framework所產出的Test Report並不是標準的 JUnit 格式。所以這使得想要回傳Test Result到Jenkins的時侯,沒辦法把 Test Result 顯示在Jenkins的Build的結果上面。然而產生JUnit report的功能在一般的Test Framework像是nose跟py.test都有,像是nose就有一個plugins是專門在處理這個問題,或者是py.test可以直接使用py.test --junitxml=path
來產生。可惜我的工具沒有。所以只好自己弄一個了。在此記錄要如何完成這個任務。
上網 Google了一下有關JUnit XML format到底長怎樣,找到Stackoverflow這篇有討論,基本上可以解決90%的疑問。有關XML的定義可以從.xsd檔中找到,而JUnit的.xsd檔,這邊可以下載。我使用XMLPad來打開,再掛載xsd的schema檔,手動體驗一下 xml 的format,基本上最簡單的的JUnit Report大概是這樣:
<testsuites xsi:noNamespaceSchemaLocation="file:///D:/junit-4.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<testsuite name="INSTALLATION RAT">
<testcase classname="INS_RAT_0001" name="Test Case Title Sample 1" time="0.046">
<system-out></system-out>
</testcase>
<testcase classname="INS_RAT_0002" name="Test Case Title Sample 2" time="4.868">
<failure message="case failed …