使用go test工具获得对源文件的代码行、函数覆盖率统计

使用go test -v -coverprofile=cover.out xxx_test.go xxx.go执行测试用例对xxx进行测试可以在相同的目录生成cover.out文件,这个文件中记录了test对go文件的代码覆盖情况。
可以使用go tool cover -html=cover.out -o=tag.html命令生成html文件,其中不同颜色标识覆盖情况。那么问题来了:我需要统计代码的覆盖情况为数组,某行被覆盖用1标识,否则为0。我总不能去检查html的颜色吧???
找了半天没找到对cover.out文件的解析。不过找到一篇cover工具的原理:http://www.51testing.com/html/37/n-3726337.html
参考这个,先生成了被gocover重写后的源码文件,然后人工取比较,终于发现了cover.out中参数的含义:
路径\dnn.go:14.39,15.19 1 1
其中go:一个分支开始的行.?,分支结束的行.? ? 是否被执行到1/0
?标识还不了解什么意思
不过对于统计代码行是否被覆盖而言到此已经足够了,将最后标志位1的首尾代码行号标记取出来视为被覆盖就ok拉!
要查看go文件中函数覆盖率的统计,使用go tool cover -func=cover.out命令可以直接将cover.out文件按函数统计,输出go中函数的覆盖情况。

后记:name.go:line.column,line.column numberOfStatements count

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值