测试类demo1
import unittest
class e1(unittest.TestCase):
def test_1(self):
print(1)
def test_2(self):
print(2)
测试类demo2
class e2(unittest.TestCase):
def test_4(self):
print(4)
def test_3(self):
print(3)
套件封装Case四种方式
addTest:
#addtest方法 参数格式 类名(用例名)
suit.addTest(e1('test_2'))
suit.addTest(e1('test_1'))
suit.addTest(e2('test_4'))
addTests:
#addtests 参数格式 [类名(用例名),类名(用例名)]
suit.addTests([e1('test_1'),e2('test_4'),e2('test_3')])
从内部源码可以看出,addTests内部也是循环调用了addTest
这两种方法其实都一样,区别是addTests()更加直观简洁
makeSuite:
suitlist=[]
suit1 = unittest.makeSuite(e1)
suit2 = unittest.makeSuite(e2)
suitlist.append(suit1)
suitlist.append(suit2)
for suit in suitlist:
run.run(suit)
makeSuite方法相较addTest或者addTests更便捷把某个类的测试用例进行批量处理,若需要特定某些类的测试用例,需要多次执行
discover:
suit = unittest.TestLoader().discover('.','demo*')
只要合理命名,通过通配符*,discover能够将用例层所有的用例进行处理
注:Unitest用例执行是有顺序的,首先根据python文件名进行排序,下一步再根据具体测试类的测试方法名称进行排序