我正在尝试使用类似于tutorial的PyTest的tmpdir_factory
为模块中的所有测试创建一个具有特定名称(例如,“数据”)的临时目录:
@pytest.fixture(scope='module')
def project_file(self, tmpdir_factory):
return tmpdir_factory.mktemp("data")
我正在模块内的某些测试中成功使用临时目录。但是,该目录在运行测试后仍然存在,当我再次运行它们时,由于无法创建名称为“ data”的新临时目录而失败。
如何在pytest测试完成后自动删除临时目录“数据”? tmpdir
参数创建一个临时目录,该目录已删除,但没有名称,只有函数作用域。
答案 0 :(得分:3)
完成固定后,您可以清理:
@pytest.fixture(scope='module')
def project_file(self, tmpdir_factory):
my_tmpdir = tmpdir_factory.mktemp("data")
yield my_tmpdir
shutil.rmtree(str(my_tmpdir))