Golang代码覆盖率总是显示为0.0%的语句覆盖率。

13

我创建了一个样本go项目,并为其创建了单元测试用例(在Linux环境下,go1.3版本)。

当我运行go test命令时,输出如下:

PASS
ok supported_db 0.201秒

我尝试使用go test -cover命令对整个应用程序执行代码覆盖,结果显示:

go tool:没有找到"cover"工具;要安装:
go get code.google.com/p/go.tools/cmd/cover

我还通过运行go test -cover CouchDB_test.go命令来检查在运行特定测试用例时的覆盖情况,结果如下:

ok command-line-arguments 0.158秒 覆盖率:语句的0.0%

请帮助我在Golang中运行代码覆盖。

2个回答

39

它对我很有帮助

如果测试在子文件夹中,则只需添加-coverpkg=./...选项:

go test ./... -v -coverpkg=./...

18

先试试:

go test -coverprofile=coverage.out

然后我运行代码,查看结果:

go tool cover -html=coverage.out
如果1.3版本是通过1.1、1.2等升级安装的,您可以尝试像issue 110中所示的方法:

我通过彻底删除$GOPATH/src/code.google.com/p/go.tools并重新安装cover来解决了这个问题:

go get golang.org/x/tools/cmd/cover

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接