Repolode
gabrielcnr

gabrielcnr/pytest-datadir

一个 pytest 插件,把测试数据目录复制到临时文件夹,方便测试安全地读取和修改数据文件。

Star
277
Fork
28
未关闭 Issue
8
最近提交
4天前

这是什么?

pytest-datadir 让测试直接访问与之配套的数据文件。默认情况下,名为 test_hello.py 的测试模块可以通过 datadir fixture 使用同名的 test_hello/ 目录,项目根目录下的 data/ 文件夹则通过 shared_datadir 提供。两个 fixture 都返回 pathlib.Path 对象,可以直接使用标准路径操作读取文件。

每个测试运行时,数据目录的内容都会被复制到临时位置,因此测试可以随意写入或修改文件,而不会影响原始数据或其他测试。1.7.0 版本新增的 lazy_datadir 和 lazy_shared_datadir 只在通过 joinpath 或 / 运算符访问时才复制文件,适合数据目录较大而测试只用到其中一部分的情况。

核心功能

  • 01通过 datadir fixture 提供与测试模块同名的数据目录。
  • 02通过 shared_datadir fixture 提供全局共享的数据目录。
  • 03将数据复制到临时目录,保证原始文件不被修改。
  • 04提供 lazy_datadir 和 lazy_shared_datadir,按需复制文件。
  • 05fixture 返回 pathlib.Path 对象。

适用场景

  • 为解析器或文件处理类测试存放样例输入和固定数据。
  • 编写需要生成或修改文件的测试,同时保持源数据不变。
  • 用一个全局数据目录在多个测试模块之间共享测试数据。

使用前须知

  • 仓库元数据中的许可证显示为 NOASSERTION,而 README 写的是 MIT,使用前请先核实许可证。

收录于专题

标签

常见问题

pytest-datadir 是什么?
一个 pytest 插件,把测试数据目录复制到临时文件夹,方便测试安全地读取和修改数据文件。 pytest-datadir 让测试直接访问与之配套的数据文件。默认情况下,名为 test_hello.py 的测试模块可以通过 datadir fixture 使用同名的 test_hello/ 目录,项目根目录下的 data/ 文件夹则通过 shared_datadir 提供。两个 fixture 都返回 pathlib.Path 对象,可以直接使用标准路径操作读取文件。
pytest-datadir 可以免费使用吗?用的什么许可证?
pytest-datadir 以 Other 许可证开源。用于商业产品前,请先确认许可证条款。
pytest-datadir 还在维护吗?
活跃维护中。pytest-datadir 最近一次提交是在 2026年11月3日。
pytest-datadir 适合用来做什么?
为解析器或文件处理类测试存放样例输入和固定数据。 编写需要生成或修改文件的测试,同时保持源数据不变。 用一个全局数据目录在多个测试模块之间共享测试数据。
在哪里获取 pytest-datadir?
源代码和安装说明在 GitHub 上:https://github.com/gabrielcnr/pytest-datadir

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目