【发布时间】:2017-08-29 07:14:55
【问题描述】:
我制作了一个简单的自定义TestResult 类(不继承自任何东西)。当我的 python unittest 失败时,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。
如何获取发生断言的文件名?
【问题讨论】:
标签: python-3.x exception python-unittest traceback