Pythonの unittest-xml-reporting
は、unittestのテストランナーで、テスト結果をxUnit形式のXMLファイルに保存することができます。このXMLファイルは、ビルドシステム、IDE、継続的インテグレーションサーバーなど、さまざまなツールで利用できます。
インストール
unittest-xml-reporting
はpipを使って簡単にインストールできます。
pip install unittest-xml-reporting
使用方法
以下に、unittest-xml-reporting
を使用してテスト結果をXMLに出力する基本的なコードを示します。
import io
import unittest
import xmlrunner
# run the tests storing results in memory
out = io.BytesIO()
unittest.main(
testRunner=xmlrunner.XMLTestRunner(output=out),
failfast=False, buffer=False, catchbreak=False, exit=False
)
# Transform the results removing extra attributes.
from xmlrunner.extra.xunit_plugin import transform
with open('TEST-report.xml', 'wb') as report:
report.write(transform(out.getvalue()))
このコードは、テスト結果をメモリに保存し、その後、結果を変換して余分な属性を削除します。最後に、結果を ‘TEST-report.xml’ ファイルに書き込みます。
注意点
unittest-xml-reporting
はPython 3.7以上を必要とします。また、unittest.TestCase.subTest
のサポートは限定的で、レポートの中で一部の粒度が失われる可能性があります。
以上が unittest-xml-reporting
の基本的な使い方です。これを使うことで、Pythonのunittestの結果をより見やすく、また様々なツールで利用できる形にすることができます。