2015-07-19 109 views
3

我正在使用pytest-mozwebqa插件运行一些硒测试。我想在所有测试中仅登录到应用程序一次,所以我尝试在conftest.py中使用会话范围的灯具,但我遇到了以下错误。我该如何编写这个登录夹具,以便每次测试都不需要登录,并且所有测试都可以使用单一登录?ScopeMismatch使用会话scoped夹具pytest-mozwebqa插件py.test

这是我得到的错误:conftest.py

================================================================================================= ERRORS ================================================================================================== 
___________________________________________________________________________ ERROR at setup of TestData.test_selected_version ____________________________________________________________________________ 
ScopeMismatch: You tried to access the 'function' scoped fixture 'mozwebqa' with a 'module' scoped request object, involved factories 
conftest.py:6: def login(mozwebqa, variables) 
../../.virtualenvs/webqa/lib/python2.7/site-packages/pytest_mozwebqa/pytest_mozwebqa.py:159: def pytest_funcarg__mozwebqa(request) 

内容:

@pytest.fixture(scope='session') 
def login(mozwebqa, variables): 
    data_page = DataPage(mozwebqa) 
    network_page = data_page.select_version(variables) 
    return network_page 

回答

0

您需要登录功能范围,相同mozwebqa夹具

+0

谢谢!如果我将登录名作为功能范围,它将起作用。但是,这使登录运行每个测试。我想在所有测试的开始时只运行一次登录,并继续使用同一会话。有没有一种方法可以实现这一点? – Amit

+0

不与当前的mozwebqa,它只提供了一个在功能范围内的灯具, – Ronny

+0

有一个固定设备的计划功能,可能每个skope都有自己的实例,但它的技巧很难使它工作很好(因为我们期望我们需要迭代许多api版本) – Ronny