在pytest中针对参数化测试的测试运行之前仅运行一次安装程序

时间:2020-06-09 16:06:28

标签: python pytest fixtures

我想使用夹具为测试设置资源,该资源应该在测试开始之前创建一次资源,但是测试已参数化。如果我按照下面提到的方式进行操作,它将为xx的每个组合调用夹具是的,有人可以帮我另一种方法来实现这一目标吗?

@pytest.mark.usefixtures('create_files')
@pytest.mark.parametrize('xx', ['a', 'b', 'c'])
@pytest.mark.parametrize('yy', ['1', '2', '3'])
def test_operaration(self):
    .
    .
    .
    .

对于每次运行,也可以通过任何方式将xx和yy的值传递给create_files灯具 ?

2 个答案:

答案 0 :(得分:1)

create_files固定装置的范围设置为session

@pytest.fixture(scope='session')
def create_files():
    ...

答案 1 :(得分:0)

最后,这有助于解决我的问题:

@pytest.fixture(scope='function')
def create_files(request: FixtureRequest):
    xx = request.getfixturevalue('xx')
    yy = request.getfixturevalue('yy')
    ...