Coverage.py:Python 代码覆盖率测量工具

Python 代码覆盖率测量工具 Coverage.py 目前获得了 3,387 个 Star。

正文顶部截图

README区域截图

Coverage.py 是 Python 生态中一款专门用于测量代码覆盖率的工具,通常在测试执行期间运行。它利用 Python 标准库内置的代码分析工具和跟踪钩子,判定哪些代码行是可执行的,哪些已经被执行过,从而帮助开发者量化测试的完整性。

Coverage.py 支持以下 Python 版本:

  • Python 3.10 到 3.15 beta,包含 free-threading 模式
  • PyPy3 的 3.10 和 3.11 版本

这意味着无论是 CPython 的主流版本还是 PyPy 这种替代实现,Coverage.py 都能提供一致的覆盖率测量能力。对 free-threading 的支持也让它在 Python 3.13+ 的新并发模型下保持兼容。

这款工具的核心功能是追踪代码执行路径,生成详细的覆盖率报告。开发者通过它可以了解测试用例覆盖了哪些代码分支,哪些逻辑路径尚未被测试触及。对于持续集成环境或需要保证测试质量的工程项目,覆盖率数据是衡量测试有效性的一个基础指标。

安装 Coverage.py 可以通过 pip 命令完成:

pip install coverage

使用方式同样直接。在运行测试时,只需在命令前加上 coverage run:

coverage run -m pytest
coverage report

第一句执行测试并收集覆盖率数据,第二句生成文本格式的覆盖率报告,在终端中展示每个文件的覆盖率百分比和未覆盖行数。

Coverage.py 也支持生成 HTML 格式的详细报告,方便在浏览器中逐行查看:

coverage html

生成的 HTML 报告会以颜色标注代码中已执行和未执行的部分,绿色表示已覆盖,红色表示未覆盖,直观展示测试缺口所在的具体代码位置。

除了基本的行覆盖率,Coverage.py 还支持分支覆盖率测量。分支覆盖率会追踪代码中的条件跳转路径,判断 if、for、while 等结构中的每个分支是否都被测试走过。这比单纯的行覆盖率更能反映测试的深度。

Coverage.py 的文档提供了快速开始指南、完整的变更历史和贡献者文档。项目采用 Apache 2.0 许可证开源。它历史悠久,维护活跃,能够与 pytest、unittest 等主流测试框架无缝配合,是 Python 项目中进行代码覆盖率分析的一个标准选择。

est 等主流测试框架无缝配合,是 Python 项目中进行代码覆盖率分析的一个标准选择。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐