Python检测代码覆盖率工具之coverage

Python检测代码覆盖率工具之coverage

代码覆盖率是什么?为什么要统计代码覆盖率?

  1. 代码覆盖率指的是在统计时间段内哪些代码被执行过或者被调用过,它会统计从代码开始执行到结束执行一共执行了多少代码比例。
  2. 为什么要统计?比如我们有一个测试需求,按业务等设计了测试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文件,然后再浏览器中打开
在这里插入图片描述
打开之后,报告生成是这个样子的~
统计结果文件,红色底色的行表示没有执行。

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/100695.html原文链接:https://javaforall.net

(0)
上一篇 2021年5月24日 上午11:00
下一篇 2021年5月24日 下午12:00


相关推荐

  • 新玩法,元宝派将启动红包掉落活动

    新玩法,元宝派将启动红包掉落活动

    2026年3月13日
    1
  • 计算机中进制转换方法_电脑进制转换方法

    计算机中进制转换方法_电脑进制转换方法计算机进制转换方法从小我们就开始学数学数学就有涉及到进制知识相信大家对于进制都不陌生吧进制也就是进位制是一种进位方法现在大家都有电脑利用电脑自带的计算机进行进制转换是最简便的方法下面是由百分网小编为大家准备的计算机进制转换方法喜欢的可以收藏一下!了解更多详情资讯请关注应届毕业生考试网!计算机中常用的进制主要有:二进制、八进制、十六进制学习计算机要对其有所了解2进制用两个阿拉伯数字:0、1;8进制用…

    2025年8月1日
    5
  • Android中Parcelable的原理和使用方法

    Android中Parcelable的原理和使用方法Parcelable 的简单介绍介绍 Parcelable 不得不先提一下 Serializable 接口 Serializable 是 Java 为我们提供的一个标准化的序列化接口 那什么是序列化呢 进行 Android 开发的时候 无法将对象的引用传给 Activities 或者 Fragments 我们需要将这些对象放到一个 Intent 或者 Bundle 里面 然后再传递 简单来说就是将对象转换为可以传输的二进制流 二进制序列 的过程 这样我们就可以通过序列化 转化为可以在网络传输或者保存到本地的流 序列 从而进行传

    2026年3月19日
    2
  • OnContextMenu事件

    OnContextMenu事件用oncontextmenu事件单禁用右键菜单 一个页面中,BODY中用oncontextmenu='returnfalse'来取消鼠标右键;在JS中设置oncontext

    2022年7月2日
    29
  • WrapPanel水平布局保持不换行的写法示例[通俗易懂]

    WrapPanel水平布局保持不换行的写法示例[通俗易懂]UI需求宽高:235px*285px内容宽度:191px要求:每行2个,右边距15,下边距10代码写法:测量后发现两个item+margin=191,所以让wrappanel定宽191item中grid套个border,在border中设置左右间距7.5,这样两个元素加起来的宽就是15,由于左边距多了7.5,所以在上一层grid左缩进7.5拉回来就可以了效果:…

    2022年7月22日
    15
  • java保留两位小数输出

    java保留两位小数输出例如:运算结果输出-40-40.0066.66666.66学过c语言的人,一看到保留小数点后两位,第一时间可能就想到:printf(”%.2f”,x);其实在java语言中和c语言类似:System.out.print(”%.2f”,x);注意:格式化输出用的是System.out.print();而不是System.out.println();原创…

    2022年7月9日
    150

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号