0


go test用法(获取单元测试覆盖率)

go test用法(获取ut覆盖率)

为了提升系统的稳定性,一般公司都会对代码的单元测试覆盖率有一定要求。下面针对golang自带的测试命令go test做讲解。

1 命令

1.1 go test ./… (运行当前目录及所有子目录下的测试用例)

# 运行当前目录及其子目录下的测试用例
go test ./... 

1.2 go test dir0/…(运行指定目录及所有子目录用例)

# 运行dir0目录及其子目录下的用例
go test dir0/...

1.3 go test user…(运行user前缀的用例)

# 运行指定前缀的测试用例
go test user...

1.4 go test …(运行GOPATH下的所有用例)

# 运行GOPATH下的所有用例
go test...

1.5 goland可视化执行

选中目录-鼠标右击-Run wtih Coverage
在这里插入图片描述

2 生成并分析覆盖率报告

2.1 生成报告

go test-mod=vendor -covermode=count -coverprofile=coverprofile.cov -run="^Test"-coverpkg=$(go list -mod=vendor ./... |grep-v"/test"|tr'\n'',') ./...

或 非 vendor 模式:
go test-covermode=count -coverprofile=coverprofile.cov -run="^Test"-coverpkg=$(go list ./... |grep-v"/test"|tr'\n'',') ./...
  • 执行命令之后会生成coverprofile.cov文件在这里插入图片描述

指令简单说明:

  1. mod=vendor: 加载依赖的方式:从本地vendor 目录加载。适用于服务器不能从外网下载依赖的情况
  2. covermode: count: 统计代码访问次数;set: 统计代码是否被访问;
  3. atomic: 一般在并发工程中使用(?)
  4. run: 正则方式指定需要运行的测试方法
  5. coverpkg: 指定业务代码路径,多个用逗号隔开,详细说明在后面
  6. ./…:遍历当前目录下测试文件,包括子目录

2.2 分析报告

①html方式查看:go tool cover -html=coverprofile.cov
# 通过html 文件打开(推荐,能看到方法细节):
go tool cover -html=coverprofile.cov

在这里插入图片描述

②命令行查看:go tool cover -func=coverprofile.cov
# 在命令行直接查看:
go tool cover -func=coverprofile.cov

在这里插入图片描述

参考:https://blog.csdn.net/xiaoliizi/article/details/107568024


本文转载自: https://blog.csdn.net/weixin_45565886/article/details/136330716
版权归原作者 NPE~ 所有, 如有侵权,请联系我们删除。

“go test用法(获取单元测试覆盖率)”的评论:

还没有评论