【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合集見鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章