(我使用的是 Python 2.6 和 nose
。)
我正在为我的 Python 应用程序编写测试。我想要一个测试来打开一个新文件,关闭它,然后删除它。自然,我更喜欢这发生在一个临时目录中,因为我不想破坏用户的文件系统。而且,它需要是跨操作系统的。
我该怎么做?
最佳答案
FWIW 使用 py.test 你可以写:
def test_function(tmpdir):
# tmpdir is a unique-per-test-function invocation temporary directory
每个使用“tmpdir”函数参数的测试函数都会得到一个干净的空目录,创建为“/tmp/pytest-NUM”的子目录(linux,win32 有不同的路径),其中每次测试运行都会增加 NUM .保留最后三个目录以方便检查,旧目录会自动删除。您还可以使用 py.test --basetemp=mytmpdir
设置基本临时目录。
tmpdir 对象是一个 py.path.local 对象,也可以这样使用:
sub = tmpdir.mkdir("sub")
sub.join("testfile.txt").write("content")
但也可以将其转换为“字符串”路径:
tmpdir = str(tmpdir)
关于Python:如何在我的测试套件中制作临时文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4199700/