如何使用pytest仅针对特定测试运行清理代码?

时间:2019-07-11 21:46:15

标签: python pytest

使用pytest可以单独在特定的测试功能/方法上运行清除代码。我知道我们可以为每个测试功能运行此操作。但是在这里,我想放置一些特定于单个测试功能的清理逻辑。

我可以将清理代码放在测试的结尾。但是,如果测试失败,则将无法进行清理。

1 个答案:

答案 0 :(得分:1)

使用清理代码创建固定装置,并通过将固定装置用作测试的参数或使用pytest.mark.usefixtures装饰器明确标记测试,将其仅注入一个测试中。

import pytest

@pytest.fixture
def my_cleanup_fixture():
    # Startup code
    ...
    yield
    # Cleanup code
    ...

@pytest.mark.usefixtures('my_cleanup_fixture')
def test_with_special_cleanup():
    pass

my_cleanup_fixture默认情况下具有范围function,因此启动和清除代码将针对其注入的每个函数运行。