聚合 Go 包覆盖率
在 Go 库中执行测试时,您可能会遇到需要获取其所有包的综合覆盖率概述的情况。包。默认情况下, '-cover' 标志仅单独提供每个包的覆盖范围信息。
解决方案
从 Go 1.10 开始,您可以使用 '-coverpkg' 标志来解决这个问题。只需运行以下命令:
go test -v -coverpkg=./... -coverprofile=profile.cov ./...
运行测试后,使用以下方法生成聚合覆盖率分析:
go tool cover -func profile.cov
旧方法(Pre-Go 1.10)
对于 1.10 之前的 Go 版本,您可以使用以下 bash脚本:
#!/bin/bash echo 'mode: count' > profile.cov for dir in $(find . -maxdepth 10 -not -path './.git*' -not -path '*/_*' -type d); do if ls $dir/*.go &>/dev/null; then go test -short -covermode=count -coverprofile=$dir/profile.tmp $dir if [ -f $dir/profile.tmp ]; then cat $dir/profile.tmp | tail -n +2 >> profile.cov rm $dir/profile.tmp fi fi done go tool cover -func profile.cov
以上是如何汇总 Go 包覆盖率结果?的详细内容。更多信息请关注PHP中文网其他相关文章!