打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
pytest文档 87 - 如何禁用插件

前言

在运行用例的时候,我们可能出于某种需求,不想加载某个插件,比如我通过pip安装了一个pytest的插件。
后续我想修改插件的一些代码,于是放到项目本地,自己去注册本地插件了。这样就需要禁用 pip 安装的那个插件。

查看激活的插件

我们可以通过 --trace-config 命令插件当前运行环境中的相关插件与已激活的插件

pytest --trace-config

将获得一个扩展的测试头,其中显示激活的插件及其名称。它还将在加载本地插件(即conftest.py文件)时打印它们
运行结果展示

platform win32 -- Python 3.8.5, pytest-7.2.2, pluggy-1.0.0
using: pytest-7.2.2
setuptools registered plugins:
allure-pytest-2.13.1 at d:\python3.8\lib\site-packages\allure_pytest\plugin.py
pytest-base-url-2.0.0 at d:\python3.8\lib\site-packages\pytest_base_url\plugin.py
active plugins:
2056185851232 : <_pytest.config.PytestPluginManager object at 0x000001DEBE3A2D60>
pytestconfig : <_pytest.config.Config object at 0x000001DEBE3DBF10>
mark : d:\python3.8\lib\site-packages\_pytest\mark\__init__.py
main : d:\python3.8\lib\site-packages\_pytest\main.py
runner : d:\python3.8\lib\site-packages\_pytest\runner.py
fixtures : d:\python3.8\lib\site-packages\_pytest\fixtures.py
helpconfig : d:\python3.8\lib\site-packages\_pytest\helpconfig.py
python : d:\python3.8\lib\site-packages\_pytest\python.py
terminal : d:\python3.8\lib\site-packages\_pytest\terminal.py
debugging : d:\python3.8\lib\site-packages\_pytest\debugging.py
unittest : d:\python3.8\lib\site-packages\_pytest\unittest.py
capture : d:\python3.8\lib\site-packages\_pytest\capture.py
skipping : d:\python3.8\lib\site-packages\_pytest\skipping.py
legacypath : d:\python3.8\lib\site-packages\_pytest\legacypath.py
tmpdir : d:\python3.8\lib\site-packages\_pytest\tmpdir.py
monkeypatch : d:\python3.8\lib\site-packages\_pytest\monkeypatch.py
recwarn : d:\python3.8\lib\site-packages\_pytest\recwarn.py
pastebin : d:\python3.8\lib\site-packages\_pytest\pastebin.py
nose : d:\python3.8\lib\site-packages\_pytest\nose.py
assertion : d:\python3.8\lib\site-packages\_pytest\assertion\__init__.py
junitxml : d:\python3.8\lib\site-packages\_pytest\junitxml.py
doctest : d:\python3.8\lib\site-packages\_pytest\doctest.py
cacheprovider : d:\python3.8\lib\site-packages\_pytest\cacheprovider.py
freeze_support : d:\python3.8\lib\site-packages\_pytest\freeze_support.py
setuponly : d:\python3.8\lib\site-packages\_pytest\setuponly.py
setupplan : d:\python3.8\lib\site-packages\_pytest\setupplan.py
stepwise : d:\python3.8\lib\site-packages\_pytest\stepwise.py
warnings : d:\python3.8\lib\site-packages\_pytest\warnings.py
logging : d:\python3.8\lib\site-packages\_pytest\logging.py
reports : d:\python3.8\lib\site-packages\_pytest\reports.py
python_path : d:\python3.8\lib\site-packages\_pytest\python_path.py
unraisableexception : d:\python3.8\lib\site-packages\_pytest\unraisableexception.py
threadexception : d:\python3.8\lib\site-packages\_pytest\threadexception.py
faulthandler : d:\python3.8\lib\site-packages\_pytest\faulthandler.py
allure_pytest : d:\python3.8\lib\site-packages\allure_pytest\plugin.py
base_url : d:\python3.8\lib\site-packages\pytest_base_url\plugin.py

禁用插件

使用 -p 来禁用插件, 在命令行执行时如下示例

pytest -p no:NAME

NAME 就是插件的名称,这意味着任何后续激活/加载命名插件的尝试都将无法工作。
或者在pytest.ini 中配置

[pytest]
addopts = -p no:NAME

查看插件名称

我通过 pip 安装了 pytest-base-url 插件

pytest-base-url

如果需要禁用此插件,先需要知道插件名称,注意插件名称不是你安装的名称

方法一:找到插件名称的另一种方法是查看插件的源代码。
名称在插件的入口点声明中:

entry_points={'pytest11': [
'plugin_name=plugin.registration.module',
]}

方法二:通过以下代码得出

import os
import pkg_resources

data = ['{}-{}: {}'.format(dist.project_name, dist.version,
' '.join(dist.get_entry_map(group='pytest11').keys()))
for dist in pkg_resources.working_set if dist.get_entry_map(group='pytest11')]

print(os.linesep.join(data))

输出结果

pytest-base-url-2.0.0: base_url
allure-pytest-2.13.1: allure_pytest

方法三:在安装的包里面查看

Lib/site-packages里面查看entry_points.txt文件

于是在pytest.ini 中这一配置

[pytest]
addopts = -p no:base_url

禁用多个插件示例

[pytest]
addopts = -p no:base_url
-p no:NAME2
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
python安装的模块在哪里
python中playwright结合pytest执行用例的实现
cmd查看python安装路径
(原创)ubuntu10.04下编译disney的partio
pip的安装,更新,卸载模块以及使用方法 python
ipython qtconsole 或者ipython notebook 怎么加载自写模块
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服