python - conftest.py 可以读取 pytest.ini 中的现有值吗?
问题描述
conftest.py 可用于定义 pytest.ini 中的属性,parser.addini()
但 conftest.py 也可以从 pytest.ini 读取现有值吗?
我想查看 pytest.ini 中一个参数的值,并用它来设置 pytest.ini 中另一个参数的默认值
这是否可能无需在 conftest.py 中自己使用 configparser?
解决方案
我想查看 pytest.ini 中一个参数的值,并用它来设置 pytest.ini 中另一个参数的默认值
最好是添加一个自定义的 impl 的pytest_configure
钩子。示例:假设您在 : 中定义了两个自定义 ini 选项conftest.py
:
def pytest_addoption(parser):
parser.addini("fizz", help="help for my key", default="buzz")
parser.addini("spam", help="help for my key", default="eggs")
现在spam
应该设置为bacon
无论何时fizz
不是buzz
(不是默认值)。扩展conftest.py
:
def pytest_configure(config):
fizz = config.getini("fizz")
spam = config.getini("spam")
print("values parsed from ini: fizz:", fizz, "spam:", spam)
if not fizz == "buzz":
# override parsed ini value
config._inicache["spam"] = "bacon"
print("spam was replaced to:", config.getini("spam"))
运行时pytest -s
(并fizz
设置为 in 以外buzz
的其他值pytest.ini
),您将获得以下输出:
values parsed from ini: fizz: fuzz spam: eggs
spam was replaced to: bacon
============================= test session starts =============================
...
推荐阅读
- php - 如何在外部使用 php 验证 wordpress 用户
- javascript - 使用 React-switch 动态创建多个开关
- css - CSS:如何在不增加弹出窗口大小的情况下扩大内容区域?
- wordpress - 如何在自定义页面模板(不是产品存档)上显示带有自定义 wp_query 或产品列表的 woocommerce 产品排序选项
- python - 如何在python中调用模块
- powershell - 从多个子文件夹中的文件中递归删除“_v1”
- java - 将纯文本输入转换为 char 以使字母的数值移位 5?
- angular - 使用角度和材质将主题当前值存储在 localStorage
- performance - Spark:显式缓存会干扰 Catalyst 优化器优化某些查询的能力?
- git - 在远程构建服务器上拉取私有 GIT 存储库