go测试覆盖率

一、go test方式(已存在xxxx.go代码文件, 实现xxxx_test.go测试文件,执行如下go test命令即可)

go test -gcflags='-N -l' -covermode=count -coverprofile=${DEPLOY}coverage.out -coverpkg ./source/... ./source/...

-gcflags='-N -l'  禁止编译器优化及内联, 这样能保证代码逻辑会被执行到

-covermode=count  表示生成的二进制中包含要统计覆盖率的计数信息

-coverprofile 要产出的覆盖率文件

-coverpkg 后面是要统计覆盖率的文件源码

代码编译结束后,会生成coverage.out文件

二、编译代码,编译出二进制文件执行(运行系统测试,需要使用插桩产物)

mian_test.go文件中设置SystemTest标识,要运行系统测试,必须在执行测试二进制文件的时候带 -SystemTest 参数

生成插桩后的二进制文件:

go test -c -o (BIN)/(BIN)/(EXENAME).test -covermode=count -coverpkg ./source/... ./source

-c 表示 生成测试二进制文件

-o 后面是输出的二进制文件名

-covermode=count 表示生成的二进制中包含要统计覆盖率的计数信息

-coverpkg 后面是要统计覆盖率的文件源码

xxxx.test即为插桩产物,该文件在每一行代码后写入一个唯一的计数器,并检查在执行该二进制文件后调用此计数器的次数

以打桩二进制文件启动服务:

nohup ./bin/$FILENAME -SystemTest -test.coverprofile ../../total_coverage.cov  -log_dir=./log -v=0>./log/panic.log 2>&1 &

执行测试case:

执行完测试case之后,会生成total_coverage.cov文件

将以上单元测试生成的文件coverage.out,合并至系统测试生成的文件total_coverage.cov中,执行go tool cover -html=total_coverage.cov -o total_coverage.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值