假设我们有一个固定装置,它分配了一些非托管资源并释放它们,如下例所示:
@pytest.fixture
def resource():
res = driver.Instance()
yield res
res.close()
Run Code Online (Sandbox Code Playgroud)
即使在使用该夹具的测试过程中发生问题,是否可以保证资源会被释放?
如果没有这样的保证,也许下面的模式会更好?
@pytest.fixture
def resource(q):
res = driver.Instance()
def finalize():
res.close()
q.addfinalizer(finalize())
return res
Run Code Online (Sandbox Code Playgroud)