首页 >后端开发 >Golang >如何汇总 Go 包覆盖率结果?

如何汇总 Go 包覆盖率结果?

DDD
DDD原创
2024-12-21 10:44:10880浏览

How Can I Aggregate Go Package Coverage Results?

聚合 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn