Python pytest.u使用cmd行选项的夹具
是否可以使用pytest_addoption(解析器)创建pytest.yield_fixture使用的列表?i、 ePython pytest.u使用cmd行选项的夹具,python,selenium-webdriver,pytest,Python,Selenium Webdriver,Pytest,是否可以使用pytest_addoption(解析器)创建pytest.yield_fixture使用的列表?i、 e def pytest_addoption(parser): parser.addoption("-foo", action="store",defaults="1,2,3") @pytest.yield_fixture(params=request.config.getoption('--foo').split(',')) def test_bar(request):
def pytest_addoption(parser):
parser.addoption("-foo", action="store",defaults="1,2,3")
@pytest.yield_fixture(params=request.config.getoption('--foo').split(','))
def test_bar(request):
do_something(request.param)
假设您有6个浏览器,并且希望能够对1个浏览器运行测试,作为快速检查。我不知道如何在测试发现/生成之前就位。Help这显然不起作用,因为在全局模块作用域中不存在
请求
变量,而全局模块作用域是在执行decorator中的表达式时存在的。解决这个问题的方法是使用钩子:
# conftest.py
def pytest_addoption(parser):
parser.addoption('--foo', action='store', defaults='1,2,3')
def pytest_configure(config):
config.foo = config.getoption('foo').split(',')
def pytest_generate_tests(metafunc):
if 'foo' in metafunc.fixturenames:
metafunc.parametrize('foo', metafunc.config.foo)
# test_bar.py
def test_bar(foo):
do_something(foo)