创建可被 Jenkins 等工具读取的 JUnit XML 测试结果文档
项目描述
关于
一个 Python 模块,用于创建可以被 Jenkins 或 Bamboo 等工具读取的 JUnit XML 测试结果文档。如果您曾经使用过用 Python 编写的测试工具或测试套件,并且想利用 Jenkins 或 Bamboo 的漂亮图表和测试报告功能,那么此模块将让您生成 XML 测试报告。
由于我找不到明确的 Jenkins JUnit XSD,因此该模块创建的 XML 文档支持基于 Google 搜索和 Jenkins JUnit XML 阅读器源代码的模式。如果某些事情不像您期望的那样工作,请提交错误。对于 Bamboo 来说情况也是一样的。
安装
使用 pip 或 easy_install 安装:
pip install junit-xml or easy_install junit-xml
您还可以从 Github 克隆 Git 存储库并手动安装:
git clone https://github.com/kyrus/python-junit-xml.git python setup.py install
使用
创建一个测试套件,添加一个测试用例,并将其打印到屏幕上:
from junit_xml import TestSuite, TestCase
test_cases = [TestCase('Test1', 'some.class.name', 123.345, 'I am stdout!', 'I am stderr!')]
ts = TestSuite("my test suite", test_cases)
# pretty printing is on by default but can be disabled using prettyprint=False
print(TestSuite.to_xml_string([ts]))
产生以下输出
<?xml version="1.0" ?>
<testsuites>
<testsuite errors=<s>"0"</s> failures=<s>"0"</s> name=<s>"my test suite"</s> tests=<s>"1"</s>>
<testcase classname=<s>"some.class.name"</s> name=<s>"Test1"</s> time=<s>"123.345000"</s>>
<system-out>
I am stdout!
</system-out>
<system-err>
I am stderr!
</system-err>
</testcase>
</testsuite>
</testsuites>
将 XML 写入文件:
# you can also write the XML to a file and not pretty print it
with open('output.xml', 'w') as f:
TestSuite.to_file(f, [ts], prettyprint=False)
有关更多示例,请参阅文档和单元测试。
注意:标识为“非法或不鼓励”的 Unicode 字符会自动从 XML 字符串或文件中删除。
运行测试
# activate your virtualenv pip install tox tox