使用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
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
python使用递归解决全排列数字示例
go语言数据结构之前缀树Trie
![](https://img.aspxhome.com/file/2023/8/97158_0s.png)
基于pygame实现童年掌机打砖块游戏
![](https://img.aspxhome.com/file/2023/4/87514_0s.jpg)
django中静态文件配置static的方法
python+numpy实现的基本矩阵操作示例
pandas groupby 用法实例详解
Python 3.8正式发布,来尝鲜这些新特性吧
在Django中Pyecharts生成图表实现
![](https://img.aspxhome.com/file/2023/4/105404_0s.png)
使用Python机器学习降低静态日志噪声
![](https://img.aspxhome.com/file/2023/0/81520_0s.png)
python实现在遍历列表时,直接对dict元素增加字段的方法
django settings.py配置文件的详细介绍
解决pip install报错:Cannot connect to proxy问题
![](https://img.aspxhome.com/file/2023/0/121730_0s.png)
Python实现指定数组下标值正序与倒序排序算法功能举例
![](https://img.aspxhome.com/file/2023/1/103751_0s.png)
详解Python多线程Selenium跨浏览器测试
![](https://img.aspxhome.com/file/2023/8/115608_0s.png)
Python从视频中提取音频的操作
MySQL中TIMESTAMP类型返回日期时间数据中带有T的解决
![](https://img.aspxhome.com/file/2023/4/105224_0s.png)
mysql error 1071: 创建唯一索引时字段长度限制的问题
element-plus中如何实现按需导入与全局导入
python实现爬虫统计学校BBS男女比例之数据处理(三)
![](https://img.aspxhome.com/file/2023/1/75981_0s.jpg)
Flask-Sqlalchemy的基本使用详解
![](https://img.aspxhome.com/file/2023/4/76044_0s.jpg)