pytest-skip跳過測試用例
前言:
pytest.mark.skip 可以標記無法再某些平臺上執行的測試功能,或者你希望失敗的測試功能,skip意味著只有在滿足某些條件時才希望測試通過,否則pytest應該跳過測試。常見示例實在非windows平臺上跳過僅限windows的測試,或者跳過測試依賴於當前不可用的外部資源(如資料庫)。
xfail 的含義是:將該用例標記為xfail失敗,並且該用例中的後續程式碼不會執行。
@pytest.mark.xfail
出來pytest.fail(),xfail還有一種使用方法。就是@pytest.mark.xfail標籤,他的含義是:期望測試用例執行失敗,但不會影響測試用例的執行。如果測試用例執行是失敗的,則結果是xfail;如果測試用例執行成功,則結果是xpass。
pytest計數並分別列出skip和xfail測試。未顯示有關跳過/xfailed測試的詳細資訊,以免混亂輸出。您可以使用-r 選項檢視與 “short”字母對應的詳細資訊顯示在測試進度中。
skip:
跳過測試函式的最簡單方法是使用跳過裝飾器標記它,可以傳遞一個可選的原因:
跳過模組中的所有方法:
在全域性中使用 pytest.mark.skip()
--skipif--:
如果希望有條件的跳過某些內容,則可以使用skipif()代替。這是標記測試的示例在python3.6之前的直譯器上執行時要跳過的函式。
?1 2 3 4 5 6 7 8 9 |
@pytest .mark.skipif((f()> 4 ),reason = "當f()大於4時執行跳過" )
def test_02():
"""
斷言b包含a
:return:
"""
a = "hello"
b = "hello world"
assert a in b, "判斷b是否包含a,a= %s b = %s "
|
如果skipif()中的條件為True時,則將跳過測試函式,具體的原因使用reason中出現的摘要
在模組之間共享skipif標記,參考一下案例:skipif() 中必須要加條件和reason
skip類或者模組:
可以在類上使用skipif標記與其他任何標記的使用方法一樣
警告:強烈建議不要在使用繼承的類上使用skipif. pytest中的一個已知錯誤標記可能會導致超類中的意外行為;
如果多個skipif()裝飾器應用於測試函式,則如果任何跳過條件為真,則將跳過它。
skip 檔案或目錄:
有時候可能需要跳過整個檔案或目錄,例如,如果測試依賴於特定的Python的版本功能或者包含不希望執行的程式碼。在這種情況下,需要排除檔案和目錄。
如何在不同情況下跳過模組中的測試
1、無條件的跳過模組中的所有測試:
pytestmark = pytest.mark.skip("all tests will wip")
2、根據某些條件跳過模組中的所以偶測試
pytestmark = pytest.mark.skipif((sys.platform=='win32"),reason = 'test for linux only')
3、如果缺少某些匯入,則跳過模組中的所有測試
pexpect = pytest.importskip()
----------------------------------------------------------------------------------------------------------
轉載於:https://www.cnblogs.com/1050619969kong/p/15585002.html
作者暱稱:GalaxyStar
前言:
pytest.mark.skip 可以標記無法再某些平臺上執行的測試功能,或者你希望失敗的測試功能,skip意味著只有在滿足某些條件時才希望測試通過,否則pytest應該跳過測試。常見示例實在非windows平臺上跳過僅限windows的測試,或者跳過測試依賴於當前不可用的外部資源(如資料庫)。
xfail 的含義是:將該用例標記為xfail失敗,並且該用例中的後續程式碼不會執行。
@pytest.mark.xfail
出來pytest.fail(),xfail還有一種使用方法。就是@pytest.mark.xfail標籤,他的含義是:期望測試用例執行失敗,但不會影響測試用例的執行。如果測試用例執行是失敗的,則結果是xfail;如果測試用例執行成功,則結果是xpass。
pytest計數並分別列出skip和xfail測試。未顯示有關跳過/xfailed測試的詳細資訊,以免混亂輸出。您可以使用-r 選項檢視與 “short”字母對應的詳細資訊顯示在測試進度中。
skip:
跳過測試函式的最簡單方法是使用跳過裝飾器標記它,可以傳遞一個可選的原因:
跳過模組中的所有方法:
在全域性中使用 pytest.mark.skip()
--skipif--:
如果希望有條件的跳過某些內容,則可以使用skipif()代替。這是標記測試的示例在python3.6之前的直譯器上執行時要跳過的函式。
?1 2 3 4 5 6 7 8 9 |
@pytest .mark.skipif((f()> 4 ),reason = "當f()大於4時執行跳過" )
def test_02():
"""
斷言b包含a
:return:
"""
a = "hello"
b = "hello world"
assert a in b, "判斷b是否包含a,a= %s b = %s "
|
如果skipif()中的條件為True時,則將跳過測試函式,具體的原因使用reason中出現的摘要
在模組之間共享skipif標記,參考一下案例:skipif() 中必須要加條件和reason
skip類或者模組:
可以在類上使用skipif標記與其他任何標記的使用方法一樣
警告:強烈建議不要在使用繼承的類上使用skipif. pytest中的一個已知錯誤標記可能會導致超類中的意外行為;
如果多個skipif()裝飾器應用於測試函式,則如果任何跳過條件為真,則將跳過它。
skip 檔案或目錄:
有時候可能需要跳過整個檔案或目錄,例如,如果測試依賴於特定的Python的版本功能或者包含不希望執行的程式碼。在這種情況下,需要排除檔案和目錄。
如何在不同情況下跳過模組中的測試
1、無條件的跳過模組中的所有測試:
pytestmark = pytest.mark.skip("all tests will wip")
2、根據某些條件跳過模組中的所以偶測試
pytestmark = pytest.mark.skipif((sys.platform=='win32"),reason = 'test for linux only')
3、如果缺少某些匯入,則跳過模組中的所有測試
pexpect = pytest.importskip()
----------------------------------------------------------------------------------------------------------
轉載於:https://www.cnblogs.com/1050619969kong/p/15585002.html
作者暱稱:GalaxyStar