阅读(3572) (1)

pytest 插件-如何安装和使用插件

2022-03-21 15:24:38 更新

本节讨论安装和使用第三方插件。 要编写自己的插件,请参阅编写插件。

使用 pip 可以轻松安装第三方插件:

pip install pytest-NAME
pip uninstall pytest-NAME

如果安装了插件,pytest会自动找到并集成,无需激活。

以下是一些流行插件的小注释列表:

  • pytest-django​:使用 pytest 集成为 django 应用程序编写测试。
  • pytest-twisted​:为​twisted​的应用程序编写测试,启动反应器并处理来自测试函数的延迟。
  • pytest-cov​:覆盖率报告,兼容分布式测试
  • pytest-xdist​:将测试分发到 CPU 和远程主机,以允许在分段错误中幸存的盒装模式运行,以 ​looponfailing模式运行,自动重新运行对文件更改的失败测试。
  • pytest-instafail​:在测试运行发生时报告失败。
  • pytest-bdd​:使用行为驱动测试编写测试。
  • pytest-timeout​:根据功能标记或全局定义超时测试。
  • pytest-pep8​:启用 ​PEP8​ 合规性检查的 ​--pep8​ 选项。
  • pytest-flakes​:使用 ​pyflakes ​检查源代码。

在测试模块或 conftest 文件中Requiring/Loading插件

你可以使用​pytest_plugins​在测试模块或​conftest​文件中​require​插件:

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

加载测试模块或 ​conftest ​插件时,也会加载指定的插件。

不推荐在非根文件​conftest.py​中要求插件使用​pytest_plugins​变量。

pytest_plugins​的名称是保留的,不应该用作自定义插件模块的名称。

找出哪些插件处于活动状态

如果您想找出您的环境中哪些插件处于活动状态,您可以键入:

pytest --trace-config

并将获得一个扩展的测试标头,其中显示已激活的插件及其名称。 它还将在加载本地插件时打印 ​conftest.py​ 文件。

按名称Deactivating / unregistering插件

您可以阻止插件加载或注销它们:

pytest -p no:NAME

这意味着任何后续尝试激活/加载命名插件都将不起作用。

如果您想无条件地禁用项目的插件,可以将此选项添加到您的 ​pytest.ini​ 文件中:

[pytest]
addopts = -p no:NAME

或者,要仅在某些环境中禁用它(例如在 ​CI服务器中),您可以将 ​PYTEST_ADDOPTS环境变量设置为-p no:name