使用coverage统计python web项目代码覆盖率的方法详解
作者:沈伟-测试前行者 发布时间:2023-05-23 18:24:35
本文实例讲述了使用coverage统计python web项目代码覆盖率的方法。分享给大家供大家参考,具体如下:
在使用python+selenium过程中,有时候考虑代码覆盖率,所以专门查了一下python的coverage,所以特此记录
1.安装coverage
自己电脑安装了pip的 直接: pip install coverage
,等待安装完成
安装完成后,会在C:\Python27\Scripts下看到相关的安装信息;
2.安装完成以后,就是开始使用了
2.1核心参数---run
以前执行一个.py的文件方式: python test.py
现在使用coverage
执行.py的文件方式: coverage run test.py
,跑完后,会自动生成一个覆盖率统计结果文件(data file):.coverage
这个文件在你的text.py的文件对应目录下
2.2核心参数---report
有了覆盖率统计结果文件,只需要再运行report参数,就可以在命令里看到统计的结果。
2.3核心参数---生成html
最帅最酷的功能了,直接生成html的测试报告。
testhtml是你要生成的html文件夹的名称,这个可以自定义,生成的文件同样在你的.py的文件目录下
这里有一个的预览的html文件,点击可以看看效果
http://nedbatchelder.com/files/sample_coverage_html/,里面对于覆盖于未覆盖的代码都有高亮显示,这个就不多说了
html参数说明:
Stmts | 总的有效代码行数(不包含空行和注释行) |
Miss | 未执行的代码行数(不包含空行和注释行) |
Branch | 总分支数 |
BrMiss | 未执行的分支数 |
Cover | 代码覆盖率 |
Missing | 未执行的代码部分在源文件中行号 |
最后给个忠告:
通过对coverage的学习,其实你用用就会发现,问题还是很多的,所以其实这个的意义也不大,但是聊胜于无;
这是别人总结的,觉得很好,就复制过来了,大家可以想下:
a. 覆盖率数据只能代表你测试过哪些代码,不能代表你是否测试好这些代码。
b. 不要过于相信覆盖率数据。
c. 路径覆盖率 < 判定覆盖 < 语句覆盖
d. 测试人员不能盲目追求代码覆盖率,而应该想办法设计更多更好的案例,哪怕多设计出来的案例对覆盖率一点影响也没有。
关于Python相关内容感兴趣的读者可查看本站专题:《Python函数使用技巧总结》、《Python面向对象程序设计入门与进阶教程》、《Python数据结构与算法教程》、《Python字符串操作技巧汇总》、《Python编码操作技巧总结》及《Python入门与进阶经典教程》
希望本文所述对大家Python程序设计有所帮助。
来源:https://blog.csdn.net/a136332462/article/details/54021231


猜你喜欢
- 本文实例为大家分享了Python银行系统的具体代码,供大家参考,具体内容如下import timeimport randomimport p
- 1、使用while循环实现输出2 - 3 + 4 - 5 + 6 ... + 100的和#方法一#从2开始计算i = 2#定义一个变量用于保
- 1、epochKeras官方文档中给出的解释是:“简单说,epochs指的就是训练过程接中数据将被“轮”多少次”(1)释义:训练过程中当一个
- 简易网页搜集器前面我们已经学会了简单爬取浏览器页面的爬虫。但事实上我们的需求当然不是爬取搜狗首页或是B站首页这么简单,再不济,我们都希望可以
- 生活中我们经常会遇到一些加密算法,今天我们就聊聊这些加密算法的Python实现。部分常用的加密方法基本都有对应的Python库,基本不再需要
- 发送邮件概述:Django中内置了邮件发送功能,发送邮件需要使用SMTP服务,常用的免费服务器有:163、126、QQ注册并登陆163邮箱打
- '================================================ '
- 问题你想对在Unix系统上面运行的程序设置内存或CPU的使用限制。解决方案resource 模块能同时执行这两个任务。例如,要限制CPU时间
- 背景最近尝试了解Django中ORM实现的原理,发现其用到了metaclass(元类)这一技术,进一步又涉及到Python class中有两
- 建立随机生成的HTML代码是一件相当容易实现的ASP特性。你可能创建过“每日一帖”、滚动广告等等,只需要稍加点缀就会令你的网站日久弥新。对存
- 本文实例讲述了Python使用scipy模块实现一维卷积运算。分享给大家供大家参考,具体如下:一 介绍signal模块包含大量滤波函数、 *
- 列表对象pop()方法的使用pop() 方法用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。语法:verse.pop(in
- 前言CRUD代表: 增加(create) ,查询(retrieve) ,更新(update) ,删除(delete) 单词首字母。一、新增数
- 最近在做一个金额查询,验证的时候总是出现很多问题,如输入-号后,input框里是没有了,但是在model里还是绑定了,提交的时候就会报错,真
- 好久没有写ASP代码了,今天在做一个简单的留言本时,出现了一下错误:Microsoft Office Access Database Eng
- 对图像块应用仿射变换,我们将其称为图像扭曲(或者仿射扭曲)。该操作不仅经常应用在计算机图形学中,而且经常出现在计算机视觉算法中。一、仿射变换
- BinLogBinLog是记录所有数据库表结构变更(例如create、alter table)以及表数据修改(insert、update、d
- 前言python 可以做网站应用,也可以做客户端应用。但是客户端应用需要运行 py 脚本,如果用户不懂 python 就是一件比较麻烦的事情
- 在SQL Server数据库操作中,我们常常会用到存储过程对实现对查询的数据的分页处理,以方便浏览者的浏览。本文我们总结了五种SQL Ser
- Null模式我想每个人都有一种经历,为了获取某属性,但是有时候属性是None,那么需要你做异常处理, 而假如你想节省这样的条件过滤的代码,可