我可以在pytest套件中添加ini样式配置吗?

时间:2015-07-21 21:26:51

标签: python pytest

我正在使用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- 文件,但那不起作用。有没有办法在不构建我自己的插件的情况下做到这一点?谢谢你的时间。

1 个答案:

答案 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变量的值。