PyTest:自动删除使用tmpdir_factory创建的临时目录

时间:2018-07-30 12:05:19

标签: python testing pytest temporary-files

我正在尝试使用类似于tutorial的PyTest的tmpdir_factory为模块中的所有测试创建一个具有特定名称(例如,“数据”)的临时目录:

@pytest.fixture(scope='module')
def project_file(self, tmpdir_factory):
    return tmpdir_factory.mktemp("data")

我正在模块内的某些测试中成功使用临时目录。但是,该目录在运行测试后仍然存在,当我再次运行它们时,由于无法创建名称为“ data”的新临时目录而失败。

如何在pytest测试完成后自动删除临时目录“数据”? tmpdir参数创建一个临时目录,该目录已删除,但没有名称,只有函数作用域。

1 个答案:

答案 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))