在断言行中打印回溯“结束”,在Python3 unittest addFailure中

时间:2017-04-04 07:48:50

标签: python-3.x exception python-unittest traceback

我创建了一个简单的自定义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中的第23行)<{1}}获取my_test.py到“结尾”

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

1 个答案:

答案 0 :(得分:0)

从日志中可以清楚地看出,self.assertEqual(5,4)文件23中方法test_my4上的/home/xplatformer/code/tools/python/exception_test/my_test.py行测试用例失败了<{1}}

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