PyTest:自动删除使用 tmpdir_factory 创建的临时目录
PyTest: Auto delete temporary directory created with tmpdir_factory
我正在尝试使用类似于 tutorial 的 PyTest tmpdir_factory
为模块中的所有测试创建一个具有特定名称(例如 "data")的临时目录:
@pytest.fixture(scope='module')
def project_file(self, tmpdir_factory):
return tmpdir_factory.mktemp("data")
我在模块中的一些测试中成功使用了临时目录。但是,在 运行 测试之后目录仍然存在,当我再次 运行 测试时,我遇到了失败,因为我无法创建名称为 "data".[=15= 的新临时目录]
如何在 pytest 测试完成后自动删除临时目录 "data"? tmpdir
参数创建了已删除的临时目录,但它没有名称,只有函数作用域。
您可以在 fixture 完成后进行清理,例如:
@pytest.fixture(scope='module')
def project_file(self, tmpdir_factory):
my_tmpdir = tmpdir_factory.mktemp("data")
yield my_tmpdir
shutil.rmtree(str(my_tmpdir))
我正在尝试使用类似于 tutorial 的 PyTest tmpdir_factory
为模块中的所有测试创建一个具有特定名称(例如 "data")的临时目录:
@pytest.fixture(scope='module')
def project_file(self, tmpdir_factory):
return tmpdir_factory.mktemp("data")
我在模块中的一些测试中成功使用了临时目录。但是,在 运行 测试之后目录仍然存在,当我再次 运行 测试时,我遇到了失败,因为我无法创建名称为 "data".[=15= 的新临时目录]
如何在 pytest 测试完成后自动删除临时目录 "data"? tmpdir
参数创建了已删除的临时目录,但它没有名称,只有函数作用域。
您可以在 fixture 完成后进行清理,例如:
@pytest.fixture(scope='module')
def project_file(self, tmpdir_factory):
my_tmpdir = tmpdir_factory.mktemp("data")
yield my_tmpdir
shutil.rmtree(str(my_tmpdir))