Python:如何在我的测试套件中制作临时文件?

标签 python unit-testing testing temporary-files

(我使用的是 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/

相关文章:

ruby-on-rails - 测试 rake 任务中定义的方法

c++ - 如何将 C++ 模型的实验版本与黄金引用进行比较?

python - 在 python 中捕获损坏的套接字

java - 单元测试来测试Linux特定代码

unit-testing - 如何对拦截器进行单元测试?

Angular Jest 旁观者在测试另一个服务时模拟服务依赖性

java - 什么是测试预言机,它有什么用?

python - 如何为 namedtuple 的子类提供额外的初始化?

python - 如何将 2 个 keras 模型的输出连接到一个单独的层?

python - 如何使用 Python 3、套接字和代理 (TOR) 获取我的 IP?