這是乙個快速指南,介紹如何在不同情況下跳過模組中的測試1.無條件地跳過模組中的所有測試:
pytestmark = pytest.mark.skip("all tests still wip")
2.根據某些條件跳過模組中的所有測試
pytestmark = pytest.mark.skipif(sys.platform == "win32",
"tests for linux
˓→ only"
3.如果缺少某些匯入,則跳過模組中的所有測試
pexpect = pytest.importorskip("pexpect")
skip 跳過用例pytest.mark.skip 可以標記無法在某些平台上執行的測試功能,或者您希望失敗的測試功能
skip 意味著叧有在滿足某些條件時才希望測試通過,否則 pytest應該跳過執行測試。 常見示例是在非 windows 平台上跳過僅限windows 的測試,或跳過測試依賴於當前不可用的外部資源(例如資料庫)。
xfail 意味著您希望測試由於某種原因而失敗。 乙個常見的例子是對功能的測試尚未實施,或尚未修復的錯誤。 當測試通過時儘管預計會失敗(標有 pytest.mark.xfail),它是乙個 xpass,將在測試摘要中報告。
pytest 計數並分別列出 skip 和 xfail 測試。 未顯示有關跳過/
xfailed 測試的詳細資訊預設情況下,以避免混亂輸出。 您可以使用-r選頃檢視不「short」字母對應的詳細資訊顯示在測試進度中
> pytest -rxxs # show extra info on xfailed, xpassed, and skipped tests
有關-r 選項的更多詳細資訊,請執行 pytest -hskip
跳過測試函式的最簡單方法是使用跳過裝飾器標記它,可以傳遞乙個可選的原因
@pytest.mark.skip(reason="no way of currently testing this")
def test_the_unknown():
...或者,也可以通過呼叫來在測試執行或設定期間強制跳過pytest.skip(reason)功能:
def test_function():
if not valid_config():
pytest.skip("unsupported configuration")
也可以使用 pytest.skip(reason,allow_module_level = true)跳過整個模組級別:
import pytest
if not pytest.config.getoption("--custom-flag"):
pytest.skip("--custom-flag is missing, skipping tests", allow_module_level=true)
當在匯入時間內無法評估跳過條件時,命令性方法很有用。
skipif如果您希望有條件地跳過某些內容,則可以使用 skipif 代替。 這是標記測試的示例在 python3.6 之前的直譯器上執行時要跳過的函式
...如果條件在收集期間評估為 true,則將跳過測試函式,具有指定的原因使用-rs 時出現在摘要中。
import mymodule
minversion = pytest.mark.skipif(mymodule.__versioninfo__ <
(1,1),
reason="at least mymodule-1.1 required")
@minversion
def test_function():
...您可以在模組之間共享 skipif 標記。參考以下案例
from test_mymodule import minversion
@minversion
def test_anotherfunction():
...您可以匯入標記並在另乙個測試模組中重複使用它:
對於較大的測試套件,通常最好有乙個檔案來定義標記,然後一致適用於整個測試套件。
或者,您可以使用條件字串而不是布林值,但它們之間不能輕易共享它們支援它們主要是出於向後相容的原因
skip 類或模組您可以在類上使用 skipif 標記(與任何其他標記一樣):
如果條件為 true,則此標記將為該類的每個測試方法生成跳過結果
如果要跳過模組的所有測試功能,可以在全域性級別使用pytestmark名稱
pytestmark = pytest.mark.skipif(...)
如果將多個 skipif 裝飾器應用於測試函式,則如果任何跳過條件為真,則將跳過它
skip 檔案或目錄有時您可能需要跳過整個檔案或目錄,例如,如果測試依賴於特定於 python 的版本功能或包含您不希望 pytest 執行的**。 在返種情況下,您必項排除檔案和目錄來自收藏。 有關更多資訊,請參閱自定義測試集合。
skip 缺少匯入依賴項
您可以在模組級別戒測試戒測試設定功能中使用以下幫助程式
docutils = pytest.importorskip("docutils")
如果無法在此處匯入 docutils,則會導致測試跳過結果。 你也可以跳過庫的版本號
docutils = pytest.importorskip("docutils",
minversion="0.3")
將從指定模組的屬性中讀取版本。
pytest文件12 skip跳過用例
pytest.mark.skip可以標記無法在某些平台上執行的測試功能,或者您希望失敗的測試功能 skip意味著只有在滿足某些條件時才希望測試通過,否則pytest應該跳過執行測試。常見示例是在非windows平台上跳過僅限windows的測試,或跳過測試依賴於當前不可用的外部資源 例如資料庫 xf...
pytest教程之skip執行時跳過用例
在實際的自動化測試過程中,我們會因為某些原因想跳過部分用例的執行,例如個別用例在某個環境中無法執行時。這時候使用pytest的skip功能可以跳過這些用例執行。下面看例子 import pytest import sys skipmark pytest.mark.skip reason 不能在sta...
pytest跳過執行skip和skipif
相關函式 pytest.mark.skip pytest.mark.skipif 可以看看原函式 staticmethod def skipif condition,reason none skip the given test function if eval condition results ...