github.com/IRelaxxx/servefiles/v3@v3.4.6/coverage (about) 1 #!/bin/bash -e 2 # Cannot use test profile flag with multiple packages, so this script 3 # processes each directory in turn. 4 # 5 # Other useful value is 'html' 6 #MODE=${1:-func} 7 8 DIR=$PWD 9 DOT=$(dirname $0) 10 cd $DOT 11 TOP=$PWD 12 PATH=$HOME/go/bin:$PATH 13 14 export GO11MODULE=on 15 16 #go env 17 go mod download 18 19 # install Goveralls if absent 20 if ! type -p goveralls; then 21 echo go install github.com/mattn/goveralls 22 go install github.com/mattn/goveralls 23 fi 24 25 rm -rf reports 26 mkdir reports 27 28 for file in $(find . -type f -name \*_test.go); do 29 dirname $file >> coverage$$.tmp 30 done 31 32 sort coverage$$.tmp | uniq | tee coverage$$.dirs 33 34 for pkg in $(cat coverage$$.dirs); do 35 name=$(echo $pkg | sed 's#^./##' | sed 's#/#-#g') 36 [ "$pkg" = "." ] && name=$(basename $PWD) 37 echo $pkg becomes $name 38 go test -v -coverprofile coverage$$.data $pkg 39 if [ -f coverage$$.data ]; then 40 go tool cover -html coverage$$.data -o reports/$name.html 41 unlink coverage$$.data 42 fi 43 done 44 45 rm -f coverage$$.tmp coverage$$.dirs 46 47 if [ -n "$(type -p chromium-browser)" ]; then 48 chromium-browser reports/*.html >/dev/null & 49 elif [ -n "$(type -p open)" ]; then 50 open reports/*.html # >/dev/null & 51 else 52 ls -lh reports/ 53 fi