子测试subTest
欢迎加入测试交流群:夜行者自动化测试(816489363)进行交流学习QAQ
–成都-阿木木
如果测试方法内,还需要对某些差异非常小的参数进行测试,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)
结果为:
======================================================================
FAIL: test_even (__main__.NumbersTest) (i=1)
Test that numbers between 0 and 5 are all even.
----------------------------------------------------------------------
Traceback (most recent call last):
File "D:/TestScriptDir/python_web/mysite/unittest_demo.py", line 25, in test_even
self.assertEqual(i % 2, 0)
AssertionError: 1 != 0
======================================================================
FAIL: test_even (__main__.NumbersTest) (i=3)
Test that numbers between 0 and 5 are all even.
------------------------------------------------------------