1、unittest框架默认用ACSII码顺序加载测试用例,数字与字母的顺序为:0~9,A~Z,a~z
(1)对于类来说,class TestAxx 会优先于class TestBxx被执行
(2)对于方法来说,test_aaa()方法会有优先于test_bbb()被执行,例如按照test0,test1,test10,test11....test20,test21执行
import unittest class TestBdd(unittest.TestCase): def setup(self): print("test TestBdd :") def test_ccc(self): print("test ccc") def test_aaa(self): print("test aaa") def tearDown(self): pass class TestAdd(unittest.TestCase): def setup(self): print("test TestAdd :") def test_bbb(self): print("test bbb") def tearDown(self): pass if __name__ == '__main__': unittest.main() 执行结果 ============== test TestAdd: test bbb .test TestBdd: test aaa .test TestBdd: test ccc . -------------------------
(3)如果不想让test—bbb()先执行,需要通过TestSuite类的addTest()方法按照一定的顺序来加载
run.py .... if __name__ == '__main__': #构造测试集 suite = unittest.TestSuite() suite.addTest(TestBdd("test_ccc")) suite.addTest(TestAdd("test_bbb")) suite.addTest(TestBdd("test_aaa")) #执行测试 runner = unittest.TextTestRunner() runner.run(suite) 执行顺序: =============== test TestBdd: test ccc .test TestAdd: test bbb .test TestBdd: test aaa . --------------------
2、@paramunittest框架接受参数时需使用setParameters方法,而且只能这样命名,括号后面的参数分别接受传入的参数名称。前面定义的是字典,那参数就跟前面字典的key保持一致