安装 go:https://golang.google.cn/
查看 go 版本命令:go version
goc 项目:https://github.com/qiniu/goc/blob/master/README_zh.md
mac 安装 goc :
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
进入 goc 目录下,执行命令:
go build
默认安装的go 在 build的时候会出现长时间无响应,有类似如下报如下错误:
go: github.com/hyperledger/fabric-contract-api-go@v1.0.0: Get https://proxy.golang.org/github.com/hyperledger/fabric-contract-api-go/@v/v1.0.0.mod: dial tcp 172.217.27.145:443: i/o timeout
因为默认的go地址被墙了,碰到这种情况则更换地址,更换为七牛云的镜像,直接运行下面两条命令即可:
go env -w GO111MODULE=on go env -w GOPROXY=https://goproxy.cn,direct
配置 goc 项目环境变量命令:
export PATH=/Users/chenjun/PycharmProjects/goc
环境变量生效命令:
source /etc/profile
查看 goc 版本命令:
goc version
进入 gocserver 目录 运行 goc server
命令启动一个服务注册中心:
goc server
运行 goc build
命令编译目标服务,然后启动插过桩的二进制。下面以 simple-go-server 工程为例:
goc build .
./simple-go-server
运行 goc profile
命令收集刚启动的 simple server 的代码覆盖率:
➜ simple-go-server git:(master) ✗ goc profile mode: atomic enricofoltran/simple-go-server/main.go:30.13,48.33 13 1 enricofoltran/simple-go-server/main.go:48.33,50.3 1 0 enricofoltran/simple-go-server/main.go:52.2,65.12 5 1 enricofoltran/simple-go-server/main.go:65.12,74.46 7 1 enricofoltran/simple-go-server/main.go:74.46,76.4 1 0 ...
simple-go-server 项目目录下,将覆盖率数据输出到cov3.out文件:
goc profile > cov3.out && go tool cover -func=cov3.out
simple-go-server 项目目录下,在宿主机的cov3.out目录下,cmd执行命令行指令,生成html报告:
go tool cover -html=./cov3.out -o cov3.html