如何使用unittest的stdout生成xml测试报告?

时间:2019-05-10 09:12:47

标签: python xml unit-testing junit

假设我有一个python工具来构建和运行unittest,例如python3 build_and_test ...

有什么方法可以解析unittest的stdout并生成xml(junit)报告?我已经参考过unittest-xml-reporting,但似乎必须更改自己的build_and_test代码,但我不能这样做。我如何才能解析unittest的标准输出并创建xml报告?

1 个答案:

答案 0 :(得分:0)

您需要执行2个步骤:

  1. 扩展unittest.TextTestRunner并覆盖_makeResult()。参见https://docs.python.org/3.4/library/unittest.html#unittest.TextTestRunner._makeResult

  2. 实施您自己的unittest.TestResult版本。参见https://docs.python.org/3.4/library/unittest.html#unittest.TestResult。您的代码将是发生各种事件的代码。示例:当出现测试错误时,将调用方法addError。参见https://docs.python.org/3.4/library/unittest.html#unittest.TestResult.addError

现在,您可以控制各种事件,并且可以创建XML报告。