coverage on multiple packages
This commit is contained in:
2
Makefile
2
Makefile
@ -47,4 +47,4 @@ clean:
|
|||||||
go clean google.golang.org/grpc/...
|
go clean google.golang.org/grpc/...
|
||||||
|
|
||||||
coverage: testdeps
|
coverage: testdeps
|
||||||
goveralls -v google.golang.org/grpc/...
|
./coverage.sh --coveralls
|
||||||
|
41
coverage.sh
Executable file
41
coverage.sh
Executable file
@ -0,0 +1,41 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
workdir=.cover
|
||||||
|
profile="$workdir/cover.out"
|
||||||
|
mode=count
|
||||||
|
|
||||||
|
generate_cover_data() {
|
||||||
|
rm -rf "$workdir"
|
||||||
|
mkdir "$workdir"
|
||||||
|
|
||||||
|
for pkg in "$@"; do
|
||||||
|
f="$workdir/$(echo $pkg | tr / -).cover"
|
||||||
|
go test -covermode="$mode" -coverprofile="$f" "$pkg"
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "mode: $mode" >"$profile"
|
||||||
|
grep -h -v "^mode:" "$workdir"/*.cover >>"$profile"
|
||||||
|
}
|
||||||
|
|
||||||
|
show_cover_report() {
|
||||||
|
go tool cover -${1}="$profile"
|
||||||
|
}
|
||||||
|
|
||||||
|
push_to_coveralls() {
|
||||||
|
goveralls -coverprofile="$profile"
|
||||||
|
}
|
||||||
|
|
||||||
|
generate_cover_data $(go list ./...)
|
||||||
|
show_cover_report func
|
||||||
|
push_to_coveralls
|
||||||
|
case "$1" in
|
||||||
|
"")
|
||||||
|
;;
|
||||||
|
--coveralls)
|
||||||
|
push_to_coveralls ;;
|
||||||
|
*)
|
||||||
|
echo >&2 "error: invalid option: $1" ;;
|
||||||
|
esac
|
||||||
|
rm -rf "$workdir"
|
Reference in New Issue
Block a user