是否可以在pytest_runtest_call pytest函数中为测试函数添加一个参数?

时间:2014-10-24 17:31:04

标签: python pytest

我想使用pytest pytest_runtest_setup函数设置selemium浏览器和pytest_runtest_teardown来释放它,并在conftest.py中编写此代码。

问题是如何将selenium browser var传递给我的测试。 pytest_runtest_call函数有item参数,实际上我用预定义的参数联系我的测试函数(如果我打印这个项目,我会得到以下内容:<Function 'test_regression[4]'>

那么,也许可以更改测试参数以在那里注入浏览器?

1 个答案:

答案 0 :(得分:0)

您不希望使用pytest_runtest_setup()pytest_runtest_teardown()挂钩。相反,你应该使用fixture来管理selenium浏览器:

@pytest.fixture
def browser(request):
    browser = selenium.webdriver.Firefox()
    request.addfinalizer(browser.quit)
    return browser

def test_something(browser):
    browser.get('http://...')
    # etc