Skip to main content

创建可被 Jenkins 等工具读取的 JUnit XML 测试结果文档

项目描述

https://travis-ci.org/kyrus/python-junit-xml.png?branch=master

关于

一个 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

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

内置分布

junit_xml-1.9-py2.py3-none-any.whl (7.1 kB 查看哈希

已上传 py2 py3