在我当前的端到端测试设置中,我使用的是Selenium。我有一个固定装置,看起来像这样:
@pytest.fixture(scope="session")
def browser(request):
# Here I do a basic setup
# Setting up accounts from configuration based on input from test function
# Initializing webdriver wrapper with this data
# yield driver
# teardown
到目前为止,我只使用夹具的参数,典型的测试功能如下所示:
@pytest.mark.parametrize('browser', [(SomeEnum, AnotherEnum1),
(SomeEnum, AnotherEnum2)], indirect=True)
def some_test(browser):
这将导致两项测试:
some_test[broswer0]
some_test[browser1]
我正在尝试将函数的参数和夹具的参数组合起来,因此测试函数如下所示:
@pytest.mark.parametrize('browser', [([SomeEnum1, SomeEnum2], AnotherEnum)], indirect=True)
@pytest.mark.parametrize('param1,param2', [(DifferentEnum, False), (DifferentEnum2, True)])
def some_test(browser, param1, param2):
此设置将导致2个测试,我希望:
如果我单独运行测试,一切正常。但如果我同时运行它们,第一个将完成并通过,而第二个似乎根本不会通过夹具,但浏览器会话将保持打开状态
我需要为每个测试执行什么样的夹具
缩小
browser
装置的范围:或者完全删除它,因为
function
是默认范围相关问题 更多 >
编程相关推荐