Blu*_*gma 5 unit-testing code-coverage go
显示代码覆盖率时,请测试显示每个包的代码覆盖率(以百分比表示)。
有没有办法显示考虑所有子文件夹(子包)的文件夹的摘要?
我想要的是整个项目的全局代码覆盖率百分比,一个显示文件夹和所有子文件夹的代码覆盖率的数字。
小智 8
运行后:
go test --coverprofile=coverage.out ./...
Run Code Online (Sandbox Code Playgroud)
跑步:
go tool cover -func=coverage.out
Run Code Online (Sandbox Code Playgroud)
您将在结果末尾看到总百分比
我找到了解决问题的方法。
我首先对所有包运行测试并将测试结果存储在文件中:
go test --coverprofile=coverage.out ./...
Run Code Online (Sandbox Code Playgroud)
然后我运行 bash 脚本来计算结果
#!/usr/bin/env bash
covered=0
total=0
while IFS='' read -r line || [[ -n "$line" ]]; do
IFS=' ' read -r -a array <<< "$line"
total=$(($total+${array[1]}))
if [ "${array[2]}" = "1" ]; then
covered=$(($covered+${array[1]}))
fi
done < "$1"
echo $(awk "BEGIN { pc=100*${covered}/${total}; i=int(pc); print (pc-i<0.5)?i:i+1 }")
Run Code Online (Sandbox Code Playgroud)