1. 跳過用例 skip:
當有部分測試用例還沒實現,但是又需要先執行整個模組進行除錯時,可以使用 skip 跳過指定的某些用例以達到測試透過的效果。
@pytest.mark.skip(reason="指定跳過原因")
def test_case():
pass
有條件跳過某些內容:
@pytest.mark.skipif(sys.version_info[0:3] > (3, 8), reason="python版本高於3.8不執行")
def test_case():
pass
*注意:skipif 中傳入的引數既可以是 bool 型別,也可以是 str 型別,如果是 bool 型別必須顯示宣告 reason 引數,否則報錯。如果是 str 型別可以不宣告 reason 引數。
2. 標記失敗 xfail:
場景:執行 A 測試用例時,該用例執行失敗,如果 B 和 C 用例都是依賴於 A 用例,那麼可以直接跳過 B 和 C 用例的執行,直接給它標記為 xfail,這樣就節省用例執行時間。
@pytest.mark.xfail(condition=False, reason="當前用例物件不存在")
def test_case():
pass
condition=True 且測試用例斷言結果失敗,執行結果是 xfailed 狀態(x)
condition=True 且測試用例斷言結果透過,執行結果是 xpassed 狀態
3. 重複執行 repeat:
標記重複執行多次測試,目的:復現一些偶然性bug
(1)第一種方式:
@pytest.mark.repeat(count)
def test_case():
pass
pass
(2)第二種方式:
使用 pytest-repeat 模組完成,pytest-repeat 是 pytest 的一個外掛,用於重複執行單個用例或多個用例
指令:使用引數 --count 指定重複測試的次數。
pytest --count=10 Test*.py
pytest --count=100 -x Test*.py 執行 100 次,一旦發生故障就會停止