新增于3.4版本
当你的某些测试只有很小的差异(比如某些参数)时,unittest允许你使用subTest()
上下文管理器在一个测试方法的主体内区分它们。
举个例子,如下的测试:
class NumbersTest(unittest.TestCase):
def test_even(self):
"""
Test that numbers between 0 and 5 are all even.
"""
for i in range(0, 6):
with self.subTest(i=i):
self.assertEqual(i % 2, 0)
运行它的输出将如下所示:
如果不使用子测试,执行将在第一次失败后停止并且错误将不太容易诊断,因为i的值不会显示: