Coverage.py:Python代码测试覆盖率分析工具

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

什么是Coverage.py

Coverage.py 是一个强大的Python代码测试覆盖率分析工具,帮助开发者精确了解哪些代码在测试中被执行,哪些未被覆盖。它是代码质量保障流程中不可或缺的一环,能有效发现测试覆盖的潜在问题。

Coverage.py 的核心目标是提供详尽的代码覆盖信息,让你清楚掌握测试对代码的覆盖程度。该工具会分析程序执行过程,并生成报告,展示每个文件、模块甚至单行代码的覆盖率百分比。

Coverage.py 的核心功能

Coverage.py 提供丰富的代码覆盖率分析功能:

行覆盖率测量 — 基础功能,追踪测试过程中哪些代码行被执行。

分支覆盖率分析 — 高级功能,检查条件语句(if、elif、else)中所有可能的执行路径是否都被覆盖。

报告生成 — 支持多种格式的详细报告:文本、HTML、XML、JSON。

框架集成 — 与 pytest、unittest、nose 等主流测试框架无缝协作。

排除规则配置 — 灵活排除特定文件、文件夹或代码行,避免干扰分析结果。

安装与初始配置

标准安装

使用 pip 安装 Coverage.py:

pip install coverage

安装增强功能

如果使用 pytest,建议安装 pytest-cov 插件:

pip install pytest-cov

如需支持 toml 配置文件:

pip install coverage[toml]

验证安装

安装后,确认 Coverage.py 正常运行:

coverage --version

常用命令与操作

运行覆盖率分析

对 Python 脚本进行基本覆盖率分析:

coverage run my_script.py

使用额外参数运行:

coverage run --source=my_package my_script.py

配合 unittest 运行

coverage run -m unittest discover

配合 pytest 运行

coverage run -m pytest

或使用 pytest-cov:

pytest --cov=my_module tests/

查看覆盖率报告

终端文本报告

coverage report

输出示例:

Name                 Stmts   Miss  Cover
----------------------------------------
my_module.py            25      3    88%
utils.py                15      0   100%
main.py                 20      5    75%
----------------------------------------
TOTAL                   60      8    87%

显示缺失行的详细报告

coverage report --show-missing

HTML 报告

coverage html

执行后,在浏览器中打开 htmlcov/index.html 即可查看交互式报告。

CI/CD 适用的 XML 报告

coverage xml

JSON 报告

coverage json

管理覆盖率数据

清除数据

                
    
    

推荐