如何在pytest中为特定方法或函数定义设置和拆卸功能?

时间:2017-10-04 10:41:06

标签: python unit-testing pytest

Pytest在模块/类/方法/功能级别上支持classical xunit style setup and teardown(除pytests dependency injection mechanism之外)。模块中的功能级别setup and teardown functions are invoked for every test function。如何为特定测试功能定义设置和拆卸功能?

1 个答案:

答案 0 :(得分:0)

import pytest

@pytest.fixture
def resource():
   resource = foo()

   yield resource

   resource.cleanup()

def test_feature(resource):
   assert bar(resource) == 27

使用fixture进行设置和清理是问题评论中建议的try...finally更好的方法,即使没有代码重用目标:您的单个测试专注于断言适当的条件,而不是资源清理。