Repolode
tarpas

tarpas/pytest-testmon

一个 pytest 插件,只重跑受近期代码改动影响的测试,可配合 pytest-watch 持续运行。

Star
1,034
Fork
87
未关闭 Issue
38
最近提交
5天前

这是什么?

pytest-testmon 是一个 pytest 插件,会记录每个测试依赖的代码,并据此只挑选受近期改动影响的测试来执行。第一次使用 --testmon 时会在 .testmondata 中生成依赖数据库,之后的运行只执行受影响的测试,适合测试套件较大、反馈较慢的项目。

Python 是动态语言,仅靠静态的导入关系很难准确判断受影响的测试,这也是该项目要解决的问题。项目文档介绍了其依赖追踪方式以及选择结果的可靠性。与 pytest-watch 配合使用时,它可以作为持续测试工具,在每次保存代码后重跑相应测试。

安装通过 pip 完成,只需添加 --testmon 参数即可启用。项目还提供了面向开源项目的 CI 接入计划,由维护者协助在 CI 中配置 testmon。

核心功能

  • 01在本地 .testmondata 数据库中记录测试与代码之间的依赖关系。
  • 02只重跑受最近文件改动影响的测试。
  • 03作为 pytest 插件使用,通过 --testmon 参数启用。
  • 04与 pytest-watch 配合,实现保存即自动测试。

适用场景

  • 在测试套件较慢的大型 Python 项目中加快本地测试速度。
  • 在日常开发中只运行一小部分受影响的测试。
  • 搭建持续测试环境,每次改动后自动重跑相关测试。

快速上手

  1. 1

    用 pip 安装插件

    pip install pytest-testmon
  2. 2

    构建依赖数据库(保存到 .testmondata)

    pytest --testmon
  3. 3

    修改部分代码(需有测试覆盖)

  4. 4

    只运行受近期修改影响的测试

    pytest --testmon

使用前须知

  • 测试选择依赖于依赖关系追踪,其可靠性取决于代码结构。

收录于专题

标签

常见问题

pytest-testmon 是什么?
一个 pytest 插件,只重跑受近期代码改动影响的测试,可配合 pytest-watch 持续运行。 pytest-testmon 是一个 pytest 插件,会记录每个测试依赖的代码,并据此只挑选受近期改动影响的测试来执行。第一次使用 --testmon 时会在 .testmondata 中生成依赖数据库,之后的运行只执行受影响的测试,适合测试套件较大、反馈较慢的项目。
pytest-testmon 可以免费使用吗?用的什么许可证?
pytest-testmon 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
pytest-testmon 还在维护吗?
活跃维护中。pytest-testmon 最近一次提交是在 2026年11月2日。
pytest-testmon 适合用来做什么?
在测试套件较慢的大型 Python 项目中加快本地测试速度。 在日常开发中只运行一小部分受影响的测试。 搭建持续测试环境,每次改动后自动重跑相关测试。
pytest-testmon 怎么安装和运行?
用 pip 安装插件: pip install pytest-testmon 构建依赖数据库(保存到 .testmondata): pytest --testmon 修改部分代码(需有测试覆盖) 只运行受近期修改影响的测试: pytest --testmon
在哪里获取 pytest-testmon?
源代码和安装说明在 GitHub 上:https://github.com/tarpas/pytest-testmon

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

相关项目