千家信息网

统计代码测试覆盖率-Python

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,衡量Unit Test(单元测试)是否充分, 覆盖率是一个必要指标, 是检验单元测试的重要依据, 这里针对python unittest 的单元测试覆盖率coverage进行分享.来自官方的解释:Co
千家信息网最后更新 2025年12月02日统计代码测试覆盖率-Python

衡量Unit Test(单元测试)是否充分, 覆盖率是一个必要指标, 是检验单元测试的重要依据, 这里针对python unittest 的单元测试覆盖率coverage进行分享.

来自官方的解释:

Coverage.py runs on many versions of Python:

CPython 2.6, 2.7 and 3.3 through alpha 3.8.

PyPy2 6.0 and PyPy3 6.0.

Jython 2.7.1, though not for reporting.

IronPython 2.7.7, though not for reporting.

注: Coverage支持丰富的python版本

  • Install Coverage

pip install coverage

无论是Windows, Linux 还是Mac os,安装都非常方便, 如果提示pip command not found, 请看这里或者自行百度.

测试代码:

我们现在已经installed coverage, 需要使用它, 让我们来创建一个Module 然后调用mymath.py, 代码如下:

这个module里我们定义了4个方法, 分别是add, subtract, multiply, divide(+,-,*,/)

让我们来测试这模块, 在call之前先要import我们的module,下面是我们的测试代码

Use coverage run to run your progame and gather data:

然后我们就可以使用Coverage 进行验证了

coverage run test_mymath.py

执行上面命令:

如果你的Module有参数,你可以使用下面方法

coverage run test.py arg1 arg2

Use coverage report to report on the results:

For a nice presentation, use coverage html to get annotated HTML lisitings detailing missed lines:

coverage html

使用上述命令会在目录下生成htmlcov文件, 包含了详细的测试报告.

浏览器查看报告详情

从中不难发现, 在test_mymath.py中我们只调用了mymath.py的add 方法, 另外3个方法没有调用,因此代码覆盖率没有达到100%, report中用红色标注提示我们, 而 test_mymath.py 全部代码都被完全Coverage, 覆盖率100%.

这么一个傻瓜式工具使用非常easy, 通过这个实例实战, 让我们比较直观的了解单元测试代码覆盖率的重要性, 平时的工作中可能被各种业务和框架缠绕, 没有把中心放在这上面, 但它却是非常重要的, 用事实和数据说话抵过千言万语.

注: Java也有相应的Coverage工具 jacoco, EMMA等.

参考文献: https://pypi.org/project/coverage/

今日精选推荐

JMeter接口测试-if控制器

JMeter数据库操作

Jmeter接口测试-正则表达式

JMeter中文返回乱码

Jmeter接口测试-参数化

JMeter接口测试-基础

测试-感想

咨询工作加微信

扫描二维码

欢迎自荐和推荐, 需要的微信推送简历!

请猛戳下面二维码了解更多


测试 代码 覆盖率 单元 接口 方法 重要 参数 命令 工具 报告 数据 二维 二维码 工作 推荐 提示 必要 直观 千言万语 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 杭州互联网软件开发招聘信息 数据库信息运行安全采取措施 网络安全的小黑板 山东人工智能软件开发价格表 外卖下单软件开发代码 sql sever报表服务器 网络软件开发公司简介 未转变者为什么一进服务器就蹦 细胞系数据库查询 法律网络安全竞赛答题 浙江办公系统软件开发 第三进河北网络安全 网站数据库管理员账号储存在哪里 软件开发处理器控制软件 刺激战场连接服务器不稳定 上海游戏软件开发哪家好推荐 软件开发网站怎么设置 wsc是数据库的哪个代码 课程设计软件开发 南京市网络技术有限公司 sql数据库怎样追踪查询 供电网络安全检查内容 聚思互联网科技有限公司 大兴区综合网络技术服务平台 港闸区智能网络技术质量保证 计算机和网络安全硬件设施 软件开发的专业认知和未来规划 山西惠普服务器维修调试价格 肺微生物代谢物数据库 辉月服务器
0