如何安装和使用插件¶
本节讨论安装和使用第三方插件。有关编写自己的插件,请参阅 编写插件。
使用 pip
可以轻松安装第三方插件
pip install pytest-NAME
pip uninstall pytest-NAME
如果安装了插件,pytest
会自动查找并集成它,无需激活。
这是一个关于一些常用插件的简要注释列表
pytest-django:使用 pytest 集成,为 django 应用编写测试。
pytest-twisted:为 twisted 应用编写测试,启动 reactor 并处理来自测试函数的 deferreds。
pytest-cov:覆盖率报告,与分布式测试兼容
pytest-xdist:将测试分发到 CPU 和远程主机,以 boxed 模式运行(允许在段错误后继续运行),以 looponfailing 模式运行,在文件更改时自动重新运行失败的测试。
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
。
有关如何获取插件名称,请参阅 查找哪些插件处于活动状态。