将 coverage.py 的覆盖率结果上传到 coveralls.io 并在线展示的 Python 工具。
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
用 pip 安装插件
pip install pytest-testmon - 2
构建依赖数据库(保存到 .testmondata)
pytest --testmon - 3
修改部分代码(需有测试覆盖)
- 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 数据每日更新。
相关项目
573186PythonMIT维护活跃更新于 22小时前