我做了一個簡單的,自定義的TestResult
類(不是從任何東西繼承)。當我的Python單元測試失敗時,按預期調用addFailure(self, test, err)
。在斷言線上打印回溯「結束」,在Python3 unittest addFailure
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
/期望。 如何獲得斷言發生的文件名?
Hi @XPlatformer如果這個或任何答案已經解決了您的問題,請點擊複選標記,考慮[接受它](https://meta.stackexchange.com/q/5234/179419)。這向更廣泛的社區表明,您已經找到了解決方案,併爲答覆者和您自己提供了一些聲譽。沒有義務這樣做。 – Surajano