- TestCase是一個測試用例,一個完整的測試用例包括:測試前準備setUp、測試執行代碼run、測試後環境還原tearDown。
- TestSuite,是多個測試用例的集合,測試套件TestSuite可以嵌套測試套件。
- TestLoader加載用例到TestSuite;
- TextTestRunner執行測試用例,保存測試結果到TextTestResult中。
- Test fixture是一個用例環境的搭建和銷燬過程。
1、測試用例執行過程:
測試用例Testcase完成後,使用TestSuite的TestLoader方法加載到測試套件, 然後有TextTestRunner運行測試套件,把測試結果保存在TextTestResult中,,每一個測試方法都必須以test開頭,否則不會被unittest識別, 在測試執行過程中,我們使用到一個參數:verbosity(0-不輸出每一項執行結果、1-輸出每一個測試結果、2-輸出詳細執行結果。)
2、測試斷言:
3、uniitest
- 跳過用例執行skip
三種跳過用例執行方法: a、unittest.skip(msg) 直接跳過用例執行,不進行條件判斷; b、unittest.skipIf(condtion) 滿足條件不執行 c、unittest.skipUnless(condtion) 滿足條件才執行
- 加載測試套件Suite
import os import unittest # 實例化測試套件 suite = unittest.TestSuite() # 獲取case目錄以下所有test開頭的測試用例文件 case_path = os.path.join(os.getcwd(), "case") discover = unittest.defaultTestLoader.discover(case_path, pattern="test*.py", top_level_dir=None) suite.addTests(discover) # 獲取目錄case1和目錄下case2測試用例文件 suite.addTest() # 使用makeSuite方法添加類或類下以test開頭的測試用例 suite.addTests(unittest.makeSuite(testclassname, 'test')) suite.addTests(unittest.makeSuite(testclassname)) # 直接添加測試類中test開頭的測試方法 suite.addTests(testclassname('test')) # 使用defaultTestLoader添加測試用例 # 使用testclass加載測試用例 unittest.TestLoader().loadTestsFromTestCase(testclass) # 使用testmodule加載測試用例 unittest.TestLoader().loadTestsFromModule(modulename) # 字符串爲使用模塊、類、用例名稱加載,注意路徑完整性 unittest.TestLoader().loadTestsFromName('str') # 字符串列表爲使用模塊、類、用例名稱加載,注意路徑完整性 unittest.TestLoader().loadTestsFromNames('list')
【參考】:https://huilansame.github.io/huilansame.github.io/archivers/python-unittest