我有一个conftest.py如下,用来获取–env filepath 中的
from configparser import ConfigParser
import pytest
def pytest_addoption(parser):
parser.addoption("--env", action="store", help="choose env: test,beta,prod")
parser.addini('env', help="choose env: test,beta,prod")
@pytest.fixture(scope='session')
def env_vars(request):
cur_env = request.config.getoption('--env')
print(cur_env)
inifile = request.config.inifile
conf = ConfigParser()
conf.read(inifile)
variables = {}
if conf.has_section('global'):
variables.update(conf.items('global'))
if conf.has_section(cur_env):
variables.update(conf.items(cur_env))
return variables
执行用例
def test_app(self, env_vars):
print(env_vars)
使用pycharm命令行执行,pytest -s -v .\TestUpgrade.py --env E:\pythonProject\HtekDailyTest\TestTask\task001\DUT1
用例成功
但是使用
if __name__ == '__main__':
pytest.main(['-s','-v','.\\TestUpgrade.py','--env E:\\pythonProject\\HtekDailyTest\\TestTask\\task001\\DUT1'])
就会报错
我用debug走了一下发现request.config.getoption(’–env’) 并没有取到东西 返回了NoneType
这是怎么回事?预先格式化的文本