You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何无需编写单元测试为Python手动测试生成pytest代码覆盖率报告

实现Python应用手动测试的代码覆盖率报告(类似Jacoco agent)

Python生态里的coverage.py工具可以实现类似Jacoco的功能,无需编写测试用例,只需追踪手动测试过程中应用的代码执行情况,步骤如下:

1. 安装coverage.py

首先安装覆盖率工具:

pip install coverage

2. 启动应用并开启覆盖率追踪

根据你的应用类型,选择对应的启动方式,确保coverage全程追踪代码执行:

情况1:直接运行的Python脚本/简单服务

如果你的应用是通过脚本直接启动(比如python app.py),用以下命令启动:

coverage run --source=. your_app.py
  • --source=. 指定追踪当前目录下的所有代码,你可以替换成具体的包路径(比如--source=my_package)
  • 启动后,正常进行手动测试操作,完成后停止应用(比如Ctrl+C)

情况2:WSGI框架应用(Flask/Django等)

Flask示例:

coverage run --source=. -m flask run

Django示例:

coverage run --source=. manage.py runserver

同样,启动后进行手动测试,结束后停止服务器。

情况3:多进程服务(如Gunicorn多worker)

多进程场景下,默认coverage只会追踪主进程,需要开启并行模式来合并各进程的覆盖率数据:

  1. 启动服务时添加--parallel-mode:
coverage run --parallel-mode --source=. -m gunicorn app:app --workers=2
  1. 停止服务后,合并所有进程的覆盖率数据:
coverage combine

3. 生成覆盖率报告

文本报告(快速查看)

执行以下命令生成简洁的文本报告:

coverage report

报告会显示每个文件的覆盖率百分比、执行行数、缺失行数等。

HTML可视化报告(推荐)

生成交互式的HTML报告,方便查看具体哪些代码未被执行:

coverage html

执行后会生成htmlcov目录,打开其中的index.html即可在浏览器中查看详细的覆盖率情况,包括高亮显示未执行的代码行。

4. 自定义配置(可选)

如果需要排除某些文件(如虚拟环境、测试文件),可以在项目根目录创建.coveragerc配置文件:

[run]
source = .
omit =
    */venv/*
    */tests/*
    */__pycache__/*
    */migrations/*

[report]
show_missing = true  # 显示未执行的代码行号
skip_covered = false # 不跳过已完全覆盖的文件

后续执行coverage命令时会自动读取该配置。

内容的提问来源于stack exchange,提问作者sapna kumari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 06:52:38