Conftest.py
@pytest.fixture(scope="module")
def fixture2(request):
do something
@pytest.fixture(scope="session", params=[ 1, 2, 3 ])
def fixture1(request):
do something else
test_file.py
@pytest.mark.usefixtures('fixture2', 'fixture1')
class TestSomething1(object):
def test_1(self):
pass
def test_2(self):
pass
@pytest.mark.usefixtures('fixture1')
class TestSomething2(object):
def test_3(self):
pass
def test_4(self):
pass
что происходит, я получаю 3 набора тестов (1 набор для каждого вызова fixture1), но fixture2 запускается только один раз для всех 3 наборов тестов (по крайней мере, это мое понимание). Я не уверен, как заставить его запускаться один раз для каждого запуска fixture1 (не один раз для каждого теста).
Что я в итоге сделал:
@pytest.fixture(scope="module")
def fixture2(request, fixture1):
do something
@pytest.fixture(scope="session", params=[ 1, 2, 3 ])
def fixture1(request):
do something else