有没有人成功地为 Go 单元测试生成代码覆盖率?我在网上找不到相关的工具。
请注意,Go 1.2(2013 年第四季度,rc1 可用)现在将显示测试覆盖率结果:
的一个主要新功能go test是它现在可以计算,并在一个新的、单独安装的“ go tool cover”程序的帮助下,显示测试覆盖率结果。 该cover工具是一部分go.toolssubrepository。它可以通过运行安装 golang $ go get golang.org/x/tools/cmd/cover 封面工具做两件事。 首先,当“ go test”被赋予-cover标志时,它会自动运行以重写包的源代码并插入检测语句。然后像往常一样编译和运行测试,并报告基本的覆盖率统计信息: $ go test -coverprofile fmtcoverage.html fmt ok fmt 0.060s 覆盖率:91.4% 的语句 $ 其次,对于更详细的报告,“go test”的不同标志可以创建一个覆盖配置文件,go tool cover然后用“ ”调用的覆盖程序可以分析该文件。
的一个主要新功能go test是它现在可以计算,并在一个新的、单独安装的“ go tool cover”程序的帮助下,显示测试覆盖率结果。
go test
go tool cover
该cover工具是一部分go.toolssubrepository。它可以通过运行安装
cover
go.tools
golang $ go get golang.org/x/tools/cmd/cover
封面工具做两件事。
-cover
$ go test -coverprofile fmtcoverage.html fmt ok fmt 0.060s 覆盖率:91.4% 的语句 $
提到:
最新版本的 Go (2013/09/19) 使用: golang go test -coverprofile <filename> <package name> 可以通过运行以下命令找到有关如何生成和分析覆盖率统计信息的详细信息 golang $ go help testflag $ go tool cover -help
最新版本的 Go (2013/09/19) 使用:
golang go test -coverprofile <filename> <package name>
可以通过运行以下命令找到有关如何生成和分析覆盖率统计信息的详细信息
golang $ go help testflag $ go tool cover -help
在评论中提到:
go test -coverprofile cover.out`然后在您的默认浏览器中 `go tool cover -html=cover.out`打开`cover.out 我什至不想等待浏览器打开,所以我定义了这个别名: golang alias gc=grep -v -e " 1$" cover.out 我只需要输入gc,并拥有所有行的列表不是尚未覆盖的(这里用coverage.out行不以“结束1“)。
go test -coverprofile cover.out`然后在您的默认浏览器中 `go tool cover -html=cover.out`打开`cover.out
我什至不想等待浏览器打开,所以我定义了这个别名:
golang alias gc=grep -v -e " 1$" cover.out
我只需要输入gc,并拥有所有行的列表不是尚未覆盖的(这里用coverage.out行不以“结束1“)。
gc
coverage.out
1