我做了一个简单的自定义TestResult
类(不继承任何东西(。当我的python单元测试失败时,addFailure(self, test, err)
按预期调用。
err[2]
包含一个traceback
我现在使用以下命令打印traceback
:traceback.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)
如何让traceback
在assertEqual
处"结束"(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)
将通过测试用例。