如何安装和使用插件¶
本节介绍如何安装和使用第三方插件。有关编写自己的插件,请参阅编写插件。
安装第三方插件可以轻松地使用pip完成
pip install pytest-NAME
pip uninstall pytest-NAME
如果插件已安装,pytest会自动发现并集成它,无需手动激活。
以下是一些常用插件的简要列表
pytest-django:使用 pytest 集成,为django应用程序编写测试。
pytest-twisted:为twisted应用程序编写测试,启动一个 reactor 并处理测试函数中的延迟。
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 文件中要求/加载插件¶
您可以在测试模块或 conftest 文件中使用pytest_plugins要求插件
pytest_plugins = ("myapp.testsupport.myplugin",)
当测试模块或 conftest 插件加载时,指定的插件也将被加载。
注意
在非根conftest.py文件中使用pytest_plugins变量要求插件已被弃用。请参阅“编写插件”部分中的完整解释。
注意
名称pytest_plugins是保留的,不应作为自定义插件模块的名称。
找出哪些插件是活动的¶
如果您想找出您的环境中哪些插件是活动的,您可以输入
pytest --trace-config
您将获得一个扩展的测试头,显示已激活的插件及其名称。它还将打印加载时本地插件,即conftest.py文件。
按名称停用/注销插件¶
您可以阻止插件加载或注销它们
pytest -p no:NAME
这意味着任何后续尝试激活/加载指定插件的操作都将无效。
如果您想无条件地禁用项目的插件,可以将此选项添加到您的配置文件中
[pytest]
addopts = ["-p", "no:NAME"]
[pytest]
addopts = -p no:NAME
或者,如果只想在特定环境(例如 CI 服务器)中禁用它,您可以将PYTEST_ADDOPTS环境变量设置为-p no:name。
有关如何获取插件名称的信息,请参阅找出哪些插件是活动的。
禁用插件自动加载¶
如果您想禁用插件自动加载,而不是要求您使用-p或PYTEST_PLUGINS手动指定每个插件,您可以使用--disable-plugin-autoload或PYTEST_DISABLE_PLUGIN_AUTOLOAD。
export PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
export PYTEST_PLUGINS=NAME,NAME2
pytest
pytest --disable-plugin-autoload -p NAME,NAME2
[pytest]
addopts = ["--disable-plugin-autoload", "-p", "NAME", "-p", "NAME2"]
[pytest]
addopts =
--disable-plugin-autoload
-p NAME
-p NAME2
新增于版本 8.4:命令行标志--disable-plugin-autoload。