如何获得文件夹的全局测试覆盖率?

When showing code coverage, go test show code coverage for each package (in percentage).

Is there a way to show a summary for a folder that is taking all subfolder (subpackage) into account?

What I want is a global code coverage percentage for the full project, one number that show code coverage of the folder and all subfolders.

I found a solution to my problem.

I first run the test on all package and store the test result in a file :

go test --coverprofile=coverage.out ./...

I then run a bash script to calculate my result

#!/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 }")

You can have the coverage of all sub-packages without any external tools/ with:

go test --coverprofile=coverage.out -coverpkg=./your/package/... ./your/package
-coverpkg pattern1,pattern2,pattern3
    Apply coverage analysis in each test to packages matching the patterns.
    The default is for each test to analyze only the package being tested.
    See 'go help packages' for a description of package patterns.
    Sets -cover.

https://golang.org/cmd/go/#hdr-Testing_flags