python-unittest


  • 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章