go语言单元测试代码覆盖率

本地操作

下载simple-go-server

https://github.com/CarlJi/simple-go-server

下载reademe中的文件并解压到

/usr/local/bin中

切换到simple-go-server目录下执行

git remote -v

 执行go run .

此时如果报错如下

 是因为:

1.go版本太低,下载新版本

https://golang.org/dl/go1.14.12.darwin-amd64.pkg

2.go命令没有替换

rm /usr/local/bin/go

成功之后的截图如下

 执行命令

goc profile

 字段解释

enricofoltran/simple-go-server/main.go:30.13,48.33 13 1

30.13     从main.go第8行的13列开始

48.33    到main.go第35行的第2列结束。

13         一共12行代码

1           被执行覆盖了1次

再次执行命令

goc profile --center="http://127.0.0.1:64850" > coverage.out && go tool cover -func=coverage.out

注意两次的端口号要一致(因为我是执行了多次,所以截图的端口号不一致)

如果报下图错误是因为simple-go-server 作为一个包的话要放到GOPATH里面

mkdir enricofoltran

cd /Users/panyang/workspace/go/src/enricofoltran

git clone git@github.com:CarlJi/simple-go-server.git

成功之后如下

 访问http://127.0.0.1:5000/

再执行上一步命令

goc profile --center="http://127.0.0.1:64850" > coverage.out && go tool cover -func=coverage.out

 

 会看到对应文件的覆盖率变了

原文地址:https://www.cnblogs.com/panpan0301/p/14029149.html