unittest用例執行的順序
阿新 • • 發佈:2019-02-02
def set testcase 會有 == div style sel 規則
unittest在執行用例(test_xxx)時,並不是按從上到下的順序執行,有特定的順序。
示例:
1 import unittest 2 3 class TestBdd(unittest.TestCase): 4 def setup(self): 5 print("test TestBdd :") 6 7 def test_ccc(self): 8 print("test ccc") 9 10 def test_aaa(self): 11 print("test aaa") 12 13 deftearDown(self): 14 pass 15 16 class TestAdd(unittest.TestCase): 17 18 def setup(self): 19 print("test TestAdd :") 20 21 def test_bbb(self): 22 print("test bbb") 23 24 def tearDown(self): 25 pass 26 27 if __name__ == ‘__main__‘: 28 unittest.main()
執行結果:
==============
test TestAdd:
test bbb
.test TestBdd:
test aaa
.test TestBdd:
test ccc
.
-------------------------
unittest框架默認根據ACSII碼的順序加載測試用例,數字與字母的順序為:0~9,A~Z,a~z。
- 對於類來說,class TestAxx 會優先於class TestBxx被執行。
- 對於方法來說,test_aaa()方法會有優先於test_bbb()被執行。
對於測試目錄與測試文件來說,unittest同樣是按照這個規則來加載測試用例的。
如果不想讓test—bbb()先執行,需要通過TestSuite類的addTest()方法按照一定的順序來加載
1 run.py 2 3 .... 4 5 if __name__ == ‘__main__‘: 6 #構造測試集 7 suite = unittest.TestSuite() 8 suite.addTest(TestBdd("test_ccc")) 9 suite.addTest(TestAdd("test_bbb")) 10 suite.addTest(TestBdd("test_aaa")) 11 #執行測試 12 runner = unittest.TextTestRunner() 13 runner.run(suite)
執行結果如下:
===============
test TestBdd:
test ccc
.test TestAdd:
test bbb
.test TestBdd:
test aaa
.
--------------------
unittest用例執行的順序