伙计们,我有一个单元测试,我不想在找到一个异常时抛出异常,但要等到最后并在最后输出提高它。:
from unittest import TestCase
class TestA(TestCase):
def setUp(self):
pass
def tearDown(self):
pass
def test_lst(self):
a = [1, 2, 3, 4, 5]
b = [1, 3, 3, 5, 5]
total_errs_count = 0
total_errs_msg = []
for i in range(5):
try:
self.assertEqual(a[i], b[i])
except AssertionError:
total_errs_count += 1
total_errs_msg.append(f'Index {i}, Expected {a[i]}, Get {b[i]}')
if total_errs_count > 0:
for m in total_errs_msg:
print(m)
raise AssertionError("Test Failed")
test = TestA()
test.test_lst()
我有:
IOndex 1, Expected 2, Get 3
Number 3, Expected 4, Get 5
----------------------------------------------------
AssertionError Traceback (most recent call last)
<ipython-input-5-b70dc996c844> in <module>
27
28 test = TestA()
---> 29 test.test_lst()
<ipython-input-5-b70dc996c844> in test_lst(self)
24 for m in total_errs_msg:
25 print(m)
---> 26 raise AssertionError("Test Failed")
27
28 test = TestA()
AssertionError: Test Failed
但是,所需的输出是隐藏回溯:
Index 1, Expected 2, Get 3
Index 3, Expected 4, Get 5
----------------------------------------------------
AssertionError: Test Failed
在这种情况下如何隐藏回溯?另一篇文章建议通过 捕获异常unittest_exception = sys.exc_info(),但在这里我不想立即抛出异常而是等待所有测试用例完成。
有什么建议吗?
ibeautiful
相关分类