pytest8.x版本 中文使用文档-------15.如何安装和使用插件

目录

在测试模块或conftest文件中要求/加载插件

找出哪些插件是激活的

通过名称停用/注销插件


本节讨论安装和使用第三方插件。如果想自己编写插件,请参考“编写插件”部分 Writing plugins

使用pip可以很容易地安装第三方插件:

pip install pytest-NAME
pip uninstall pytest-NAME

如果插件已安装,pytest 会自动发现并集成它,无需手动激活。

以下是一些流行插件的简要说明列表:

pytest-django:使用pytest集成来编写针对django 应用的测试。

pytest-twisted:编写针对twisted 应用的测试,启动一个reactor并从测试函数中处理deferreds。

pytest-cov:提供覆盖率报告,与分布式测试兼容。

pytest-xdist:将测试分发到CPU和远程主机上,以在盒装模式下运行(允许在发生段错误时继续运行),在循环失败模式下运行,在文件更改时自动重新运行失败的测试。

pytest-instafail:在测试运行时立即报告失败。

pytest-bdd:使用行为驱动测试(BDD)编写测试。

pytest-timeout:根据函数标记或全局定义来设置测试的超时时间。

pytest-pep8:提供一个--pep8选项,用于启用PEP8合规性检查。

pytest-flakes:使用pyflakes检查源代码。

allure-pytest:通过allure-framework报告测试结果。

要查看所有插件的完整列表以及它们针对不同pytest和Python版本的最新测试状态,请访问Pytest插件列表Pytest Plugin List

您也可以通过在pypi.org上进行pytest相关搜索来发现更多插件pytest- pypi.org search

在测试模块或conftest文件中要求/加载插件

在测试模块或conftest文件中,你可以使用pytest_plugins变量来指定需要加载的插件。

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

这行代码告诉pytest去加载位于myapp.testsupport模块中的myplugin插件。注意,这里使用了一个元组(尽管只有一个元素,但元组是必需的),因为pytest_plugins可以指定多个插件。

将插件的导入路径赋值给pytest_plugins,当测试模块或conftest插件被加载时,指定的插件也会被加载。pytest会在测试运行之前自动加载这些插件。

注意

在非根目录的conftest.py文件中使用pytest_plugins变量来要求插件已被弃用。请参阅“编写插件”部分中的完整解释。

注意

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

找出哪些插件是激活的

如果你想找出在你的环境中哪些插件是激活的,你可以输入:

pytest --trace-config

这个命令将生成一个扩展的测试头部,显示已激活的插件及其名称。当加载本地插件(也称为conftest.py 文件)时,它也会打印出来。这个选项非常有用,因为它可以帮助你了解哪些插件正在影响你的测试运行,以及它们是如何被加载的。

通过名称停用/注销插件

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

pytest -p no:NAME

这里的NAME是你想要停用或注销的插件的名称。这个命令的意思是,任何后续尝试激活/加载该名称的插件都不会成功。这是一种在特定情况下排除不需要的插件的便捷方式。注意,这只会影响当前pytest会话,不会影响全局的pytest配置。

如果你想要无条件地为项目禁用一个插件,你可以在你的pytest.ini文件中添加这个选项:

[pytest]  
addopts = -p no:NAME

这里的NAME是你想要禁用的插件的名称。这样,每次运行pytest时,这个插件都不会被加载。

另外,如果你只想在特定环境中禁用插件(例如在持续集成(CI)服务器上),你可以设置PYTEST_ADDOPTS环境变量为-p no:NAME。这样,当该环境变量被设置时,pytest会在运行时自动添加这个选项,从而禁用指定的插件。

关于如何获取插件的名称,请参见“找出哪些插件是激活的”部分,其中介绍了如何使用pytest --trace-config命令来列出所有激活的插件及其名称。

  • 19
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值