golang是一个开发效率非常高、代码安全性高的开发语言。同时具备优秀的跨平台特性,在windows、Linux、macos、android native层可实现一次编码,多平台编译运行。同时,golang本身集成了非常多的代码测试工具,现在介绍的是goc代码覆盖率测试工具,主要从实际操作出发,基本上跟着做一遍就会了,有了goc的加持,让我们开发的代码简洁易于维护,开始…
1、安装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
2、使用步骤
goc server
goc build --center="http://127.0.0.1:7777"
./testPlatform
goc profile -o test.cov
go tool cover -func=test.cov
gocov convert test.cov |gocov-html > views/test_cov.html
a) 首先部署一个服务注册中心goc server,它将会作为枢纽服务跟所有的被测服务通信
b) 用goc build --center=“” 命令编译被测程序
c)环境部署好之后,就可以做任意的测试,如本项目gotest中跑接口自动化测试用例
d) 覆盖率文件生成及查看
通过goc profile --center=""查看被测集群的覆盖率结果
通过goc profile -o a.cov生成覆盖率文件
goc profile -o a.cov
go tool cover -func=a.cov
gocov convert a.cov |gocov-html >cov.html
可通过go tool cover -func=merge.cov查看测试集覆盖率
注:如果是多个覆盖率文件,则可合并成一个,如下命令:
goc merge a.cov b.cov -o merge.cov
e) 覆盖率测试完成后,需要生成html报告
安装gocov和gocov-html
go install github.com/axw/gocov/gocov@latest
go install github.com/AlekSi/gocov-xml@latest
go install github.com/matm/gocov-html@latest
go get github.com/axw/gocov/gocov
go get github.com/AlekSi/gocov-xml
go get github.com/matm/gocov-html
报告生成命令
gocov convert a.cov |gocov-html >cov.html
3、扩展相关
vscode插件使用
a、安装插件Goc Coverage
b、在项目根目录运行goc run .
c、在settings.json中修改goc.serverUrl为当前的server端地址
d、在vsocde最下方工具栏中打开Goc Coverage为ON状态(默认为OFF状态),运行自动化接口测试,即可看到相关代码被测试到同时背景色变绿