Pytest tmp_path 实战指南:测试中的临时目录管理
概述
- 测试写入的文件污染了本地环境
- 不同测试之间因文件路径冲突导致互相干扰
- 测试结束后需要手动清理临时文件
Pytest 提供了一个非常实用的内置,它能帮助我们自动创建和清理临时目录,确保每个测试都在独立、干净的环境中运行
基本原理
什么是 tmp_path
tmp_path
是 Pytest 提供的一个内置 fixture,它为每个测试函数提供一个唯一的临时目录路径(Pathlib 对象),用于创建、读写、删除文件等操作
tmp_path的特点
pathlib.Path
基本使用方式
def test_write_file(tmp_path): file = tmp_path / \"test.txt\" file.write_text(\"Hello, Pytest!\") assert file.read_text() == \"Hello, Pytest!\"
在这个例子中:
tmp_path
是由 Pytest 提供的临时目录。file
是该目录下的一个文件。- 测试结束后,整个目录(包括文件)会被自动删除。
常见使用方式
创建临时文件和目录
def test_create_file(tmp_path): file = tmp_path / \"data.txt\" file.touch()