[Python][Unit Testing] 如何產生 JUnit XML Reports

多數 continuous integration (CI) 系統都能讀取以 JUnit XML format 表示的 test results(例如 JenkinsHudson),但 unittest module 並未提供對應的 test runner。

使用第三方的 test runner 是一個方式,例如 xmlrunner/unittest-xml-reporting 就是採用這樣的做法,但必須要動到 test code。例如:

import xmlrunner

#...

if __name__ == '__main__':
    unittest.main(testRunner=xmlrunner.XMLTestRunner(output='test-reports'))

比較建議的做法會是利用 pytestnose 執行測試。以 nose 為例,只要加上 –with-xunit 就會額外輸出 unittests.xml (可以用 –xunit-file 自訂檔名):

$ nosetests --with-xunit --xunit-file=output.xml

參考資料

  • Xunit: output test results in xunit format — nose
    • nosetests –with-xunit 就可以產生 XUnit XML report (nosetests.xml); 透過 –xunit-file 可以自訂檔名
    • Post-build Actions > Publish JUnit test result report > 填 Test report XMLs (相對於 workspace)
廣告

發表迴響

Please log in using one of these methods to post your comment:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s