如何安裝和使用外掛程式

本節介紹如何安裝和使用第三方外掛程式。若要編寫自己的外掛程式,請參閱 編寫外掛程式

安裝第三方外掛程式可以使用 pip 輕鬆完成

pip install pytest-NAME
pip uninstall pytest-NAME

如果安裝了外掛程式,pytest 會自動找到並整合它,無需啟用。

以下是一些熱門外掛程式的簡要註解列表

  • pytest-django:為 django 應用程式編寫測試,使用 pytest 整合。

  • pytest-twisted:為 twisted 應用程式編寫測試,啟動 reactor 並處理來自測試函數的 deferreds。

  • pytest-cov:覆蓋率報告,與分散式測試相容

  • pytest-xdist:將測試分發到 CPU 和遠端主機,以 boxed 模式運行(允許在分段錯誤中倖存),以 looponfailing 模式運行,在文件更改時自動重新運行失敗的測試。

  • pytest-instafail:在測試運行時報告失敗。

  • pytest-bdd:使用行為驅動測試編寫測試。

  • pytest-timeout:根據函數標記或全域定義設定測試超時。

  • pytest-pep8:一個 --pep8 選項,用於啟用 PEP8 合規性檢查。

  • pytest-flakes:使用 pyflakes 檢查原始碼。

  • allure-pytest:透過 allure-framework 報告測試結果。

若要查看包含所有外掛程式及其針對不同 pytest 和 Python 版本之最新測試狀態的完整列表,請造訪 Pytest 外掛程式列表

您也可以透過 pytest- pypi.org 搜尋 發現更多外掛程式。

在測試模組或 conftest 檔案中要求/載入外掛程式

您可以使用 pytest_plugins 在測試模組或 conftest 檔案中要求外掛程式

pytest_plugins = ("myapp.testsupport.myplugin",)

當載入測試模組或 conftest 外掛程式時,指定的外掛程式也將被載入。

注意

在非根目錄 conftest.py 檔案中使用 pytest_plugins 變數要求外掛程式已被棄用。請參閱「編寫外掛程式」章節中的 完整說明

注意

名稱 pytest_plugins 是保留字,不應用作自訂外掛程式模組的名稱。

找出哪些外掛程式處於活動狀態

如果您想找出哪些外掛程式在您的環境中處於活動狀態,您可以輸入

pytest --trace-config

並將獲得一個擴展的測試標頭,其中顯示已啟用的外掛程式及其名稱。當載入本機外掛程式(也稱為 conftest.py 檔案)時,它也會印出。

依名稱停用/取消註冊外掛程式

您可以阻止外掛程式載入或取消註冊它們

pytest -p no:NAME

這表示任何後續嘗試啟用/載入指定的外掛程式都將無效。

如果您想為專案無條件停用外掛程式,您可以將此選項添加到您的 pytest.ini 檔案中

[pytest]
addopts = -p no:NAME

或者,若要僅在某些環境(例如在 CI 伺服器中)停用它,您可以將 PYTEST_ADDOPTS 環境變數設定為 -p no:name

請參閱 找出哪些外掛程式處於活動狀態,以了解如何取得外掛程式的名稱。