如何衡量Golang中的代码覆盖率?
有没有人成功地为Go单元测试生成代码覆盖率?我在网络上找不到该工具。
回答:
请注意,Go1.2(2013年第四季度,rc1可用)现在将显示
:
的一项主要新功能
go test
是, 。该
cover
工具是一部分go.tools
subrepository。可以通过运行安装
$ go get golang.org/x/tools/cmd/cover
封面工具有两件事。
- 首先,
go test
给“ ”
-cover
标志时,它将自动运行以重写包的源并插入检测语句。然后将测试编译并照常运行,并报告基本覆盖率统计信息:
$ go test -coverprofile fmtcoverage.html fmtok fmt 0.060s coverage: 91.4% of statements
$
其次,对于更详细的报告,要“进行测试”的不同标志可以创建一个覆盖率配置文件,
go tool cover
然后用“ ” 调用的覆盖程序可以对其进行分析。
弗兰克·希勒(FrankShearar)提到:
Go(2013/09/19)的最新版本使用:
go test -coverprofile <filename> <package name>
运行命令可以找到有关如何生成和分析覆盖率统计信息的详细信息
$ go help testflag$ go tool cover -help
伊万·布莱克(IvanBlack)在评论中提到:
go test -coverprofile cover.out
然后在您的默认浏览器中
go tool cover -html=cover.out
打开cover.out
我什至不想等待浏览器打开,所以我定义了这个别名:
alias gc=grep -v -e " 1$" cover.out
我只需要输入gc
,并拥有所有行的列表 不是 尚未覆盖的(这里用coverage.out
行 不 以“结束1
“)。
以上是 如何衡量Golang中的代码覆盖率? 的全部内容, 来源链接: utcz.com/qa/416555.html