python统计代码覆盖率

【需求】代码覆盖率是什么?为什么要统计代码覆盖率?
1 覆盖率即统计在时间段内哪些代码被执行和调用了,如有100行代码覆盖率统计就是从开始统计时间到结束时间执行了多少的代码的比例。
2 为什么要用,补充测试case。接到一个测试需求,按业务等设计了测试case,但心里没有底case是不是能覆盖所有场景?加上代码覆盖完善之前的case。

【工具】coverage 统计python代码覆盖率

pip install coverage -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com   #加上国内下载源确保下载成功
C:\Users\Desktop>coverage --help               #确认安装成功
Coverage.py, version 3.6
Measure, collect, and report on code coverage in Python programs.

usage: coverage <command> [options] [args]

Commands:
    annotate    Annotate source files with execution information.
    。。。

【使用工具案例】
首先找一个待统计的测试文件,如test.py (可以看出只有else之后的语句不执行)

import json
test = 'aaaaa'


def writejson():
    testdata = {
        "uris": ["files/6f49779435a62fe8211da0e9f515fe0d73b22fe4/logs/owl/storage"]
    }
    testdata = json.dumps(testdata)
    print(testdata)

    if test:
        print('22222222222222')
    else:
        print('33333333333333333')


writejson()

开始覆盖率统计执行

C:\Users\Desktop>coverage run test.py          #开始统计执行,执行完会自动生成个.coverage的文件
C:\Users\chenyandong\Desktop>coverage report -m             #命令行统计概要,执行率90%
Name    Stmts   Miss  Cover   Missing
-------------------------------------
test       10      1    90%   15

C:\Users\chenyandong\Desktop>coverage html
C:\Users\chenyandong\Desktop>coverage html -d reportcoveragehtml  #生成reportcoveragehtml的文件夹,包含html的结果报告,看起来更直观(如下图)

html报告生成文件
统计报告文件
统计结果文件,红色底色的行表示没有执行。
含有几个参数,用法差不多自己玩下就会了。如:coverage annotate test.py 会生成一个test.py,cover文件,内容如下图(!表示没有执行的代码行)

> import json
> test = 'aaaaa'
  
  
> def writejson():
>     testdata = {
>         "uris": ["files/6f49779435a62fe8211da0e9f515fe0d73b22fe4/logs/owl/storage"]
>     }
>     testdata = json.dumps(testdata)
>     print(testdata)
  
>     if test:
>         print('22222222222222')
!     else:
!         print('33333333333333333')
  
  
> writejson()
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值