【pytest官方文檔】解讀- 如何安裝和使用插件

本節討論安裝和使用第三方插件。關於編寫自己的插件,我們下一章繼續。

一、pip 安裝

就像安裝一些其他第三方庫一樣,使用pip也可以很容易地安裝第三方插件,pytest-NAME這是你要安裝的插件名稱:

# 安裝
pip install pytest-NAME

#卸載
pip uninstall pytest-NAME

比如我這裡安裝一個pytest-xdist的插件:

第三方插件裝完就可以直接用了,pytest會自動找到並集成它,不需要我們手動激活它。

二、查找可用插件

pytest的第三方插件非常豐富,所以功能也是多種多樣的。下面列舉一些流行的插件:

  • pytest-django: 為django應用程式編寫測試,使用pytest集成。
  • pytest-cov: 覆蓋報告,兼容分散式測試
  • pytest-xdist: 將測試分發到cpu和遠程主機,提高執行效率
  • pytest-instafail: 在測試運行時報告失敗
  • pytest-bdd: 使用行為驅動測試編寫測試用例
  • pytest-timeout: 根據函數標記或全局定義測試超時。
  • pytest-pep8: 啟用pep8合規性檢查

官方有一個完整插件列表,裡面有針對不同pytestPython版本的最新測試狀態,傳送門 在此。

此外,我們也可以在pytest- pypi.org search搜索插件。

插件非常多,後續遇到一些很實用或者很有趣的插件會單獨進行分享。上面關於pytest-xdist分散式執行的插件之前有過介紹,都添加到文章末尾的pytest合集里了,有需要的自取。

三、在測試模組或者conftest文件中載入指定插件

我們可以使用pytest_plugins在測試模組或conftest文件中載入指定插件:

# 可以是單個插件,就是一個字元串
pytest_plugins = "myapp.testsupport.myplugin"

# 也可以載入多個,字元串的隊列
pytest_plugins = ("myapp.testsupport.tools", "myapp.testsupport.regression")

當測試模組或conftest插件被載入時,指定的插件也會被載入。

值得注意的是:

  • 盡量不要在非根目錄的conftest.py文件中使用pytest_plugins變數來載入插件(開發插件時候繼續展開)
  • 自定義插件模組的名稱不要使用pytest_plugins來命名

四、查看被激活的插件

如果想知道哪些插件在本地環境中是激活的,可以通過該命令:

pytest --trace-config

在測試頭部資訊中會顯示激活的插件,它還會在載入本地插件時列印出conftest.py文件

五、註銷插件

我們可以阻止插件載入或註銷它們:

pytest -p no:NAME

這樣,後續就沒辦法進行插件的激活/載入了。

如果想無條件地禁用一個項目的插件,可以在項目配置文件pytest.ini中添加這個選項即可:

[pytest]
addopts = -p no:NAME

文末附上合集的傳送門

pytest合集見鏈接