c40779224f
Fixes #52
48 lines
858 B
Bash
Executable File
48 lines
858 B
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# This script runs the cover tool on all packages with test files. If you set a
|
|
# WEB environment variable, it will additionally open the web-based coverage
|
|
# visualizer for each package.
|
|
|
|
set -e
|
|
|
|
function go_files { find . -name '*_test.go' ; }
|
|
function filter { grep -v '/_' ; }
|
|
function remove_relative_prefix { sed -e 's/^\.\///g' ; }
|
|
|
|
function directories {
|
|
go_files | filter | remove_relative_prefix | while read f
|
|
do
|
|
dirname $f
|
|
done
|
|
}
|
|
|
|
function unique_directories { directories | sort | uniq ; }
|
|
|
|
PATHS=${1:-$(unique_directories)}
|
|
|
|
function report {
|
|
for path in $PATHS
|
|
do
|
|
go test -coverprofile=$path/cover.coverprofile ./$path
|
|
done
|
|
}
|
|
|
|
function combine {
|
|
gover
|
|
}
|
|
|
|
function clean {
|
|
find . -name cover.coverprofile | xargs rm
|
|
}
|
|
|
|
report
|
|
combine
|
|
clean
|
|
|
|
if [ -n "${WEB+x}" ]
|
|
then
|
|
go tool cover -html=gover.coverprofile
|
|
fi
|
|
|