如何安装和使用插件¶
本节讨论了如何安装和使用第三方插件。要编写自己的插件,请参阅 编写插件。
可以使用 pip
轻松安装第三方插件
pip install pytest-NAME
pip uninstall pytest-NAME
如果安装了插件,pytest
会自动查找并集成它,无需激活它。
下面列出了一些流行插件的简要注释列表
pytest-django:使用 pytest 集成编写 django 应用程序的测试。
pytest-twisted:编写 twisted 应用程序的测试,启动反应堆并处理测试函数中的延迟。
pytest-cov:覆盖率报告,与分布式测试兼容
pytest-xdist:将测试分布到 CPU 和远程主机,以装箱模式运行,允许在分段故障中存活,以循环失败模式运行,在文件更改时自动重新运行失败的测试。
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
。
请参阅 了解哪些插件处于活动状态 以获取如何获取插件名称。