如何安装和使用插件

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

可以使用 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

请参阅 了解哪些插件处于活动状态 以获取如何获取插件名称。