我正在使用pytest在多个环境中运行测试,我希望将这些信息(理想情况下)包含在ini样式的配置文件中。我还想在命令行覆盖部分或全部配置。我尝试在我的conftest.py
中使用钩子def pytest_addoption(parser):
parser.addoption("--hostname", action="store", help="The host")
parser.addoption("--port", action="store", help="The port")
@pytest.fixture
def hostname(request):
return request.config.getoption("--hostname")
@pytest.fixture
def port(request):
return request.config.getoption("--port")
,如此:
[pytest]
addopts = --hostname host --port 311
使用这个我可以在命令行添加配置信息,但不能在配置文件中添加。我也尝试过添加
pytest.ini
到我的svn st | grep ^[AM] | cut -c9-
文件,但那不起作用。有没有办法在不构建我自己的插件的情况下做到这一点?谢谢你的时间。
答案 0 :(得分:2)
解析器对象也有一个addini方法,您可以使用它来通过ini文件指定配置选项。 以下是它的文档:https://pytest.org/latest/writing_plugins.html?highlight=addini#_pytest.config.Parser.addini
addini(name, help, type=None, default=None)[source]
注册一个ini文件选项。
Name: name of the ini-variable
Type: type of the variable, can be pathlist, args, linelist or bool.
Default: default value if no ini-file option exists but is queried.
可以通过调用config.getini(name)来检索ini变量的值。