互斥装置?

时间:2013-04-02 22:31:02

标签: python pytest

我有两个互斥的数据夹具,每个都需要不同的测试:

@pytest.fixture(scope='session')
def testdata1(request, conn):
    savepoint = conn.begin_nested()
    request.addfinalizer(savepoint.rollback())
    # load dataset 1

@pytest.fixture(scope='session')
def testdata2(request, conn):
    savepoint = conn.begin_nested()
    request.addfinalizer(savepoint.rollback())
    # load dataset 2

虽然这些工作独立,但在运行需要testdata2的测试之前,testdata1夹具并未拆除。有什么方法可以确保在测试期间不需要测试所需的灯具?

1 个答案:

答案 0 :(得分:1)

由于您将范围指定为' session'两者都将保持活跃状态​​,直到所有测试结束。 你应该指定更严格的范围。 我想我明白你想要什么,但我认为期望pytest这样做是不切实际的。

类似的东西:

testdata1()
test_that_uses_testdata1()
testdata1_finalizer()
test_data2()
test_that_uses_testdata2()
test_something_else()
testdata2_finalizer()
testdata1()
test_something_else_that_uses_testdata1()
testdata1_finalizer()

对于测试系统来说,这看起来真的很多。 :)