1 # 建立單元測試類,繼承unittest.TestCase 2 class testCase(unittest.TestCase): 3 4 # 測試case 5 def test_01(self): 6 print("test01") 7 8 def test_03(self): 9 print("test03") 10 11 def test_04(self): 12 print("test04") 13 14 def test_05(self): 15 print("test05")
1 if __name__ == '__main__': 2 # 實例化測試套件 3 suite = unittest.TestSuite() 4 # 實例化第二個測試套件 5 suite1 = unittest.TestSuite() 6 # 添加測試用例 - 方式一 7 suite.addTest(testCase('test_03')) 8 suite.addTest(testCase('test_01')) 9 suite1.addTest(testCase('test_03')) 10 suite1.addTest(testCase('test_01')) 11 # 添加測試用例 - 方式二 12 testcase = (testCase('test_05'), testCase('test_04')) 13 suite.addTests(testcase) 14 # 測試套件添加測試套件 15 suite.addTest(suite1) 16 # 實例化TextTestRunner類 17 runner = unittest.TextTestRunner() 18 # 運行測試套件 19 runner.run(suite)
1 test03 2 test01 3 test05 4 test04 5 test03 6 test01 7 ...... 8 ---------------------------------------------------------------------- 9 Ran 6 tests in 0.000s 10 11 OK
前三個文件是包含了單元測試類的文件,第四個文件是負責運行全部單元測試類,不包含測試用例函數
列舉某個單元測試類文件代碼單元測試
1 # 建立單元測試類,繼承unittest.TestCase 2 class testCase02(unittest.TestCase): 3 4 # 測試case 5 def test_07(self): 6 print("testCase02 test07") 7 8 def test_06(self): 9 print("testCase02 test06") 10 11 def test_11(self): 12 print("testCase02 test11")
1 import unittest 2 from learn.unittestLearning import test_case02 3 from learn.unittestLearning.test_case03 import testCase03 4 5 if __name__ == '__main__': 6 # 經過模塊 7 testcase02 = unittest.TestLoader().loadTestsFromModule(test_case02) 8 # 經過單元測試類 9 testcase03 = unittest.TestLoader().loadTestsFromTestCase(testCase03) 10 # 經過模塊字符串 11 testcase04 = unittest.TestLoader().loadTestsFromName('learn.unittestLearning.test_case04') 12 # 測試用例集 13 tests = [testcase02, testcase03, testcase04] 14 # 建立測試套件 15 suite = unittest.TestSuite(tests) 16 # 運行測試套件 17 unittest.TextTestRunner(verbosity=2).run(suite)
1 import unittest 2 3 if __name__ == '__main__': 4 # 須要運行的單元測試文件目錄 5 test_path = './' 6 # 實例化defaultTestLoader 7 discover = unittest.defaultTestLoader.discover(start_dir=test_path, pattern="test_case*.py") 8 # 運行測試用例集 9 unittest.TextTestRunner().run(discover)
優勢:是否是簡潔。。是否是很快??只需三行代碼!!測試
1 testCase02 test06 2 testCase02 test07 3 testCase02 test11 4 testCase03 test05 5 testCase03 test08 6 testCase03 test12 7 testCase04 test02 8 testCase04 test04 9 testCase04 test13 10 ......... 11 ---------------------------------------------------------------------- 12 Ran 9 tests in 0.000s 13 14 OK