【问题标题】:How to create a custom UnitTest report in Python?如何在 Python 中创建自定义 UnitTest 报告?
【发布时间】:2013-06-07 13:06:19
【问题描述】:

我在理解如何更改单元测试报告时遇到了一些困难,类似于:

======================================================================    
FAIL: test_equal (__main__.InequalityTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "test_notequal.py", line 7, in test_equal
    self.assertNotEqual(1, 3-2, "My Custom Message")
AssertionError: 1 == 1

到类似的报告:

Line 7: My Custom Message

如何解析这些报告?

【问题讨论】:

    标签: python unit-testing customization


    【解决方案1】:

    经过进一步研究,我的问题可以通过覆盖默认的 TestResult 类来解决,如下所示:Turn some print off in python unittest

    或使用一些第三方自定义,例如noseHTMLTestRunner.

    【讨论】:

      【解决方案2】:

      如果您需要根据单个测试用例的成功/失败创建自定义报告,您可以创建一个自定义 TestRunner,它使用自定义 TestResult,并在 TestResult 类中覆盖成功和失败方法。这将根据要求提供处理回调。

      class CustomTestRunner(TextTestRunner): 
              def _makeResult(self): 
                  return CustomTestResult(TestResult)
              def run(self, test) -> unittest.result.TestResult:
                  # add implementation as per TextTestRunner run method here
      
      class CustomTestResult:
             def addSuccess(self, test):
                 super(CustomTestResult, self).addSuccess(test)
                 # your logic to log success cases
      
             def addFailure(self, test):
                 super(CustomTestResult, self).addFailure(test)
                 # your logic to log failure cases
      

      参考,请查看python unittest 模块。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-10-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多