代码覆盖率是什么?为什么要统计代码覆盖率?
- 代码覆盖率指的是在统计时间段内哪些代码被执行过或者被调用过,它会统计从代码开始执行到结束执行一共执行了多少代码比例。
- 为什么要统计?比如我们有一个测试需求,按业务等设计了测试case,但是我们并不清楚自己的测试case到底有没有覆盖所有业务场景,这个时候coverage就可以派上用场
coverage 统计python代码覆盖率
# 加上国内下载源确保下载成功
pip install coverage -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
测试代码
这里我们先写一个简单的场景,然后去执行,主要是查看coverage具体是怎么使用的。这里我们从菜鸟上面找到一篇判断字符串是否是数字的代码。
def is_number(s):
try:
float(s)
return True
except ValueError:
pass
try:
import unicodedata
unicodedata.numeric(s)
return True
except (TypeError, ValueError):
pass
return False
print(is_number(10))
返回结果:
C:/Users/hzxy/PycharmProjects/work/test.py
True
Process finished with exit code 0
开始覆盖率统计执行
执行如下命令:
# 开始统计执行,执行完成会自动生成.coverage的文件
coverage run test.py
# 统计概要,执行率64%
coverage report -m
生成 reportcoveragehtml报告
# 执行如下命令,生成html报告
coverage html
coverage html -d reportcoveragehtml
命令执行之后,他会生成一个 reportcoveragehtml 的文件夹,然后我们在文件夹中找到以我们运行文件开头生成的html文件,然后再浏览器中打开
打开之后,报告生成是这个样子的~
统计结果文件,红色底色的行表示没有执行。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/100695.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...