【发布时间】:2019-01-04 17:22:52
【问题描述】:
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 组测试(每次调用 fixture1 时设置 1 组),但是对于所有 3 组测试,fixture2 只运行一次(至少这是我的理解)。我不确定如何让它在每次运行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
【问题讨论】: