python词频统计代码_统计代码测试覆盖率Python

d3f85ea29e5e894d7c588cecddd35282.png

6ec181565ed3c0e3917d6d37408a4f25.png

JUST DO IT

1b6e2bb381beb44f43fadeb6fcefa54f.png

温暖春日

ce427934b9afd26b58163c52c7845dc6.png

统计代码测试覆盖率-Python

37c788b5784903d34701a6a2c08c46b7.png

衡量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, 代码如下:

b976b519447206b4d6baabe3d2fedb54.png

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

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

2bdaef0b582a51faead9e155bb03f183.png

  • Use coverage run to run your progame and gather data:

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

coverage run test_mymath.py

执行上面命令:

356079b57677cd298a906d337cc52b65.png

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

coverage run test.py arg1 arg2

  • Use coverage report to report on the results:

460fd5e79bba2d7644a15c84fee1fa49.png

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

coverage html

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

22f278555607255237326faf1be2947c.png

浏览器查看报告详情

878ed3528b954a59d37d1d8cd48478ef.png

db62d160440220193102804f263b3cbc.png5b31a5b2aa4f3053d346be73630a722e.png

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

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

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

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

JUST DO IT

3d360756b3478a4a99fff8d493dff260.png

df1c5466179691cf726f39d85a02b9b4.png

温暖春日

看了就要关注我

今日推荐阅读文章精选推荐

为什么要做接口测试

JMeter数据库操作

Jmeter接口测试-正则表达式

JMeter中文返回乱码

Jmeter接口测试-参数化

JMeter接口测试-基础

测试-感想

微信长按二维码添加作者

449fac3b3e4c1ec5ec3ea68f3bc547cb.png

      获取更多精彩内容

赶紧关注我们吧

87519fff9e0d494ede489775fca83682.png

招聘信息

高级测试工程师

上海 / 经验3年以上 / 全职

职位诱惑:

15薪 发展前景好 预上市企业

高级测试工程师

工作职责

1. 独立负责测试计划制定,测试场景与测试用例设计、执行,BUG提交与追踪,指导其他测试人员完成项目测试;

2. 负责产品的功能、适配、性能等方面的测试以及用户验收测试;

3. 研究测试技术、负责开发测试相关的自动化测试脚本、测试工具,帮助团队提升测试质量和效率;

4. 负责产品的质量评估与质量评价标准制定,能够主动提出合理化修改意见;

5. 完成相关技术文档编写、报告输出、组织和参加相关的技术评审与培训;

任职资格

1.本科及以上学历,3年以上互联网行业测试工作经验,熟练掌握需求分析、测试方案设计、功能测试、自动化测试等;

2.熟悉测试理论、方法,具备大型复杂系统软件测试经验;

3.熟练使用Robot Framework、TestNg、postman、jmeter等自动化框架和工具,拥有接口自动化 WEB自动化或APP自动化

4. 熟悉Jenkins、Git、Maven等工具;有持续集成(CI)及持续发布(CD)经验者优先;

工作地址

上海 - 市区

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

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

f3d85b7589349b3e5f5932f4ed93540b.png 7dbdaafc21feb801b03bc2f9d9746ddc.png f3d85b7589349b3e5f5932f4ed93540b.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值