conftest.py可用于通过parser.addini()
定义pytest.ini中的属性,但是conftest.py也可以从pytest.ini中读取现有值吗?
我想查看pytest.ini中一个参数的值,并用它来设置pytest.ini中另一个参数的默认值
是否可以不必在conftest.py中自己使用configparser?
答案 0 :(得分:1)
我想查看pytest.ini中一个参数的值,并用它来设置pytest.ini中另一个参数的默认值
最好是添加一个pytest_configure
钩子的自定义暗示。示例:假设您在conftest.py
中定义了两个自定义ini选项:
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
(并且{{1}中的fizz
设置为buzz
以外的其他内容)时,您将获得以下输出:
pytest.ini