Pythonのunittestフレームワークは、テスト結果をXML形式で出力する機能を提供しています。これにより、ビルドシステム、IDE、継続的インテグレーションサーバーなど、さまざまなツールがテスト結果を消費することが可能になります。
unittest-xml-reportingライブラリ
Pythonのunittestフレームワークでテストを実行し、その結果をXMLファイルに保存するためのunittestテストランナーとして、unittest-xml-reporting
(別名xmlrunner
)があります。
このライブラリはPython 3.7以上をサポートしています。
Jenkinsとの連携
Jenkinsは、unittest-xml-reporting
が生成するXMLファイルを解析し、テスト結果を視覚化することができます。
コード例
以下に、unittest-xml-reporting
を使用してテスト結果をXMLに出力する基本的なコード例を示します。
import io
import unittest
import xmlrunner
# テストの実行と結果の保存
out = io.BytesIO()
unittest.main(
testRunner=xmlrunner.XMLTestRunner(output=out),
failfast=False,
buffer=False,
catchbreak=False,
exit=False
)
# 結果の変換と余分な属性の削除
from xmlrunner.extra.xunit_plugin import transform
with open('TEST-report.xml', 'wb') as report:
report.write(transform(out.getvalue()))
このコードは、テスト結果をメモリに保存し、その後で結果を変換して余分な属性を削除します。
以上がPythonのunittestフレームワークとXMLレポート出力についての基本的な情報です。これらの情報を活用して、より効率的なテスト環境を構築することができます。.