如何安裝和使用外掛程式

本節說明如何安裝和使用第三方外掛程式。如要撰寫自己的外掛程式,請參閱 撰寫外掛程式

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

pip install pytest-NAME
pip uninstall pytest-NAME

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

以下是部分熱門外掛程式的簡要註解清單

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

  • pytest-twisted:為 twisted 應用程式撰寫測試,啟動反應器並處理測試函數中的遞延。

  • pytest-cov:涵蓋範圍報告,相容於分散式測試

  • pytest-xdist:將測試分發到 CPU 和遠端主機,以盒裝模式執行,允許在分段錯誤中存活,以迴圈失敗模式執行,在檔案變更時自動重新執行失敗的測試。

  • 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

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