『心善淵』Selenium3.0基礎 — 27、unittest跳過測試的使用
- 2021 年 7 月 15 日
- 筆記
- 測試基礎必會技能 - Selenium測試框架
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()
執行結果: