对unittest用例容器suit的操作--遍历容器中的用例实现对用例的增删改查
遍历容器中的用例实现对用例的增删改查
容器中的用例是一个列表,可以通过对列表的各种操作,实现用例的增删改查。
suit = unittest.TestSuit()
suit.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLogin))
print(suit._tests)
suit._tests就是一个列表,里面包含一个个用例。也只有上面这种加载方式时,列表中的每一个元素才是单个的用例。如果是下面两种,则列表中中每个元素是一个模块,就不能实现对单个用例的操作了。
suit.addTest(unittest.defaultTestLoader.discover())
suit.addTest(unittest.defaultTestLoader.loadTestsFromModule())
print(discover._tests)
[<unittest.suite.TestSuite tests=[<unittest.suite.TestSuite tests=[<test_login.TestLogin testMethod=test_login1_normal>, <test_login.TestLogin testMethod=test_login2_passwordError>, <test_login.TestLogin testMethod=test_login3_allEmpty>]>]>]
由上面可见,这个容器中包含了三层,但也能实现对每个模块中用例的操作。方法是,逐层遍历,直到遍历到第三层的列表,就可以通过对列表的操作,来对用例进行增删改查了。
for i in discover:
for j in i:
print(j._tests)
结果为:[<test_login.TestLogin testMethod=test_login1_normal>, <test_login.TestLogin testMethod=test_login2_passwordError>, <test_login.TestLogin testMethod=test_login3_allEmpty>]