1. 程式人生 > 其它 >pytest-skip跳過測試用例

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