有没有办法告诉 python unittest 执行一个方法中的所有断言并显示它失败的所有情况,而不是在第一个失败时停止。
class MyTestCase(TestCase):
def test_a(self):
with open('testcase.txt') as ifile:
for iline in ifile:
self.assertEqual(iline, 'it is a test!')
最佳答案
Python 3.4 引入了 subTest
上下文管理器。你的代码看起来像
class MyTestCase(TestCase):
def test_a(self):
with open('testcase.txt') as ifile:
for iline in ifile:
with self.subTest(line=iline):
self.assertEqual(iline, 'it is a test!')
在没有 subTest
的情况下实现这一点的丑陋方法是在 try
block 中进行 self.assert*
调用,打印捕获的错误,如果至少有一个测试失败,则在循环后显式地引发 AssertionError
。
关于python - 单元测试中的for循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26458634/