在断言行上打印回溯"ending",在 Python3 单元测试 addFailure 中



我做了一个简单的自定义TestResult类(不继承任何东西(。当我的python单元测试失败时,addFailure(self, test, err)按预期调用。

err[2]包含一个traceback

我现在使用以下命令打印tracebacktraceback.print_tb(err[2])

打印输出包含比预期/期望多两个级别。

  File "/usr/lib64/python3.4/unittest/case.py", line 58, in testPartExecutor
    yield
  File "/usr/lib64/python3.4/unittest/case.py", line 580, in run
    testMethod()
  File "/home/xplatformer/code/tools/python/exception_test/my_test.py", line 23, in test_my4
    self.assertEqual(5,4)
  File "/usr/lib64/python3.4/unittest/case.py", line 800, in assertEqual
    assertion_func(first, second, msg=msg)
  File "/usr/lib64/python3.4/unittest/case.py", line 793, in _baseAssertEqual
    raise self.failureException(msg)

如何让tracebackassertEqual处"结束"(my_test.py中的第 23 行(

同样,当像这样提取文件名时:err[2].tb_frame.f_code.co_filename,我得到case.py而不是按预期/期望my_test.py。如何获取断言发生的文件名?

日志中可以清楚地看出,在方法test_my4文件中/home/xplatformer/code/tools/python/exception_test/my_test.py中,有self.assertEqual(5,4)在线23测试用例失败

更改self.assertEqual(5,5)将通过测试用例。

最新更新