禁用py.test中临时目录的自动清理

时间:2016-06-29 13:21:28

标签: pytest temporary-directory

运行py.test创建临时存储库以帮助我们保存报告,数据,输出等等。

可以在DRIVE:\Users\USERNAME\AppData\Local\Temp\pytest-of-USERNAME\

找到它们

如第72页的文件中所述:

  

默认情况下,临时目录被创建为的子目录   系统临时目录。基本名称为pytest-NUM,其中NUM   每次测试运行都会增加。此外,3岁以上的条目   临时目录将被删除。

当我运行多个测试时,最多3个临时目录非常烦人,有没有办法改变这个值?

1 个答案:

答案 0 :(得分:0)

由于这些是临时目录,因此您无法依赖它们。这个名字说明了一切。在Unix上运行py.test,tmp目录实际上存储在/ tmp目录中,该目录在每次重启系统时都会清空。

您应该将内容移动到安全的地方。这可以通过使用yield fixture来创建临时目录,然后在拆卸阶段将目录的内容复制到安全的地方。

@pytest.yield_fixture(scope="session")
def my_tmp_dir(tmpdir_factory):
   t = tmpdir_factory.mktemp('some_test_path')
   yield t
   # do things to copy away your tmp directory
   # to a safe place.