千家信息网

统计代码测试覆盖率-Python

发表于:2025-01-30 作者:千家信息网编辑
千家信息网最后更新 2025年01月30日,衡量Unit Test(单元测试)是否充分, 覆盖率是一个必要指标, 是检验单元测试的重要依据, 这里针对python unittest 的单元测试覆盖率coverage进行分享.来自官方的解释:Co
千家信息网最后更新 2025年01月30日统计代码测试覆盖率-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安全错误 数据库的锁怎样保障安全 新手都会的服务器挖金矿区指令 腐蚀手游怎么开服务器 数据库删除姓名的公式 mysql数据库基础书 高校教职工工资管理系统数据库 金融科技之互联网思维 服务器管理端口地址 常见网络安全事故案例 云有互联网科技有限公司 做软件开发买苹果电脑浪费吗 gps测温云盘数据库 港行ps4pro怎么连接服务器 网络技术转让合同模板 颖云网络技术有限公司怎么样 莆田购呗网络技术有限公司 计算机网络技术专业格证书 浪潮数据中心哪个服务器好 网络技术公司上班可靠吗 给定资料中介绍的网络安全事件 商丘政务软件开发公司 Nfine连接数据库 郴州口碑好的软件开发哪家便宜 浙江计算机网络技术专业学校 许昌软件开发优化价格 数据库erd 网络安全前景csdn 三级数据库考试用哪个软件 网络安全管理和运维 静安区创新数据库有哪些 微信弹出数据库有损坏
0