『心善淵』Selenium3.0基礎 — 27、unittest跳過測試的使用
阿新 • • 發佈:2021-07-15
目錄
1、什麼是跳過測試
當測試用例寫完後,有些模組有改動時候,會影響到部分用例的執行,這個時候我們希望暫時跳過這些用例。或者前面某個功能執行失敗了,後面的幾個用例是依賴於這個功能的用例,如果第一步就失敗了,後面的用例也就沒必要去執行了,為了節省用例執行時間,可選擇直接跳過測試。
2、常用的跳過測試方法和裝飾器
當執行有想要跳過的測試,我們可以通過skip
、skipIf
、skipUnless
裝飾器跳過某個測試方法或者測試類。
@unittest.skip(reason)
:skip(reason)
@unittest.skipIf(reason)
:skipIf(condition,reason)
裝飾器,條件為真時,跳過裝飾的測試,並說明跳過測試的原因。@unittest.skipUnless(reason)
:skipUnless(condition,reason)
裝飾器,條件為假時,跳過裝飾的測試,並說明跳過測試的原因。@unittest.expectedFailure
:測試標記為失敗。
3、跳過測試示例
""" 1.學習目標 瞭解unittest中跳過測試方法使用 2.語法 2.1 放置在需要跳過的測試用例之前 @跳過測試方法 測試用例 2.2 分類 @unittest.skip(跳過原因):表示無條件跳過執行 @unittest.skipIf(判斷條件,跳過原因): 當判斷條件為真時,跳過測試 @unittest.skipUnless(判斷條件,跳過原因):當判斷條件為假時,跳過測試 @unittest.expectedFailure: 直接將用例標記為失敗 3.需求 編寫測試類,使用跳過測試 """ # 1 匯入unittest import unittest # 2 建立測試類 class Test_demo(unittest.TestCase): # 3 編寫test case # 第一條測試用例正常執行 def test_case_01(self): """測試用例1""" print("執行測試用例1") # 新增skip,不執行測試 @unittest.skip("無條件跳過") def test_case_02(self): """測試用例2""" print("執行測試用例2") # 新增skipif,條件為真跳過測試 @unittest.skipIf(True, "條件為真,跳過測試") def test_case_03(self): """測試用例3""" print("執行測試用例3") # 新增skipIf,條件為假執行測試 @unittest.skipIf(2 > 3, "條件為假,執行用例") def test_case_04(self): """測試用例4""" print("執行測試用例4") # 新增skipUnless,條件為假不執行測試 @unittest.skipUnless(False, "條件為假,跳過測試") def test_case_05(self): """測試用例5""" print("執行測試用例5") # 新增skipUnless,條件為真執行測試 @unittest.skipUnless(True, "條件為真,執行用例") def test_case_06(self): """測試用例6""" print("執行測試用例6") # 新增expectedFailure,直接將用例標記為失敗 @unittest.expectedFailure def test_case_07(self): """測試用例7""" print("執行測試用例7") def test_case_08(self): """測試用例8""" print("執行測試用例8") if __name__ == '__main__': # 執行當前測試類中,以test開頭的測試用例 unittest.main()
執行結果:
4、TestCase.skipTest()方法
用TestCase.skipTest()
方法跳過某個測試方法(瞭解)。
示例:
# 1 匯入unittest import unittest # 2 建立測試類 class TestDmeo(unittest.TestCase): # 3 編寫test case def test_case_01(self): """測試用例1""" print("執行測試用例1") # TestCase.skipTest()方法 def test_case_02(self): """測試用例2""" # 跳過測試方法 self.skipTest('跳過用例test_case2') print("執行測試用例2") if __name__ == '__main__': # 執行當前測試類中,以test開頭的測試用例 unittest.main()
執行結果: