python - 互斥的装置?

标签 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 固定装置不会被拆除。有什么方法可以确保测试不需要的 fixture 在测试期间不处于事件状态?

最佳答案

由于您将两者的范围指定为“ 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()

对于测试系统来说,这确实让人抱有很高的期望。 :)

关于python - 互斥的装置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15775601/

相关文章:

python - 如何测试打包为可重用应用程序的 Django-CMS 插件

Python处理日期格式如 "1st, 2nd, 3rd, 4th"

python - 如何在 pytest 中使用具有不同数据结构的不同 fixture 进行一次测试?

python - 如何恢复模拟

python - 为目录中的每个文件运行 pytest

python - macOS - os.listdir 返回以 "."开头的双项?

python - 使用 Python 从文本中提取信息到结构化数据

python - 层次聚类 Python 3.6 期间的内存错误

pytest - 为什么用 pytest-xdist 对 Astropy 并行测试没有很好的加速?

python - Pytest + 多处理队列不能很好地协同工作