前言
有些代码需要统计整体代码的自动化测试覆盖率,下面说一下这个覆盖率应该如何统计
实现过程
安装goc
# Mac/AMD64
curl -s -L "https://github.com/qiniu/goc/releases/latest" | sed -nE 's!.*"([^"]*-darwin-amd64.tar.gz)".*!https://github.com\1!p' | xargs -n 1 curl -L | tar -zx && chmod +x goc && mv goc /usr/local/bin# Linux/AMD64
curl -s -L "https://github.com/qiniu/goc/releases/latest" | sed -nE 's!.*"([^"]*-linux-amd64.tar.gz)".*!https://github.com\1!p' | xargs -n 1 curl -L | tar -zx && chmod +x goc && mv goc /usr/local/bin# Linux/386
curl -s -L "https://github.com/qiniu/goc/releases/latest" | sed -nE 's!.*"([^"]*-linux-386.tar.gz)".*!https://github.com\1!p' | xargs -n 1 curl -L | tar -zx && chmod +x goc && mv goc /usr/local/bin
如果上面的安装方式有问题,就给拆开安装。比如用下面的命令举个例子:
curl -s -L "https://github.com/qiniu/goc/releases/latest" | sed -nE 's!.*"([^"]*-darwin-amd64.tar.gz)".*!https://github.com\1!p' | xargs -n 1 curl -L | tar -zx && chmod +x goc && mv goc /usr/local/bin
拆成:
第一步:
在网站https://github.com/qiniu/goc/releases/latest中找到想要下载的版本
下载上图的压缩包,之后给解压,就会有一个goc二进制文件
第二步:
给goc文件添加权限,并且移动到/usr/local/bin路径
chmod +x goc
mv goc /usr/local/bin
安装完成之后使用命令:goc version 查看是否安装完成
xxx$goc version
v1.4.5
编译goc版本
首先先git clone下来需要统计的被测试的服务。例如:
git clone xxxx
进入拉下来的代码目录,编译goc版本
goc build -o 想编译成的文件名 .
启动goc server服务,此时运行该服务之后就会出现下图所示address地址。接下来需要根据该地址获取统计覆盖率的结果
# 启动命令
goc server
接下来就把你要测试的服务给启动起来,这里面有个细节就是必须使用用goc编译的二进制文件启动
运行自动化或能自测到服务代码手段
接下来运行自动化或者自测使用到的一些脚本什么的,目的是能走到服务的代码逻辑
获取覆盖率结果
运行完之后,这个时候我们去拿到覆盖率结果,使用命令:
goc profile --center="http://xxxx:25475" > coverage.out
这个时候查看,会发现目录下多了一个coverage.out文件,将这个文件移动到git clone下来的代码路径中,进入git clone的代码路径中,执行下面的命令就可以得到总的自动化覆盖率情况
go tool cover -func=coverage.out
结果如下图