【pytest官方文檔】解讀- 如何安裝和使用插件
- 2022 年 9 月 13 日
- 筆記
- 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合規性檢查
…
官方有一個完整插件列表,裡面有針對不同pytest
和Python
版本的最新測試狀態,傳送門 在此。
此外,我們也可以在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合集見鏈接