1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
#!/usr/bin/env bash
# because things are never simple.
# See https://github.com/codecov/example-go#caveat-multiple-files
set -e
echo "" > coverage.txt
for d in $(go list ./... | grep -v vendor); do
go test -race -coverprofile=profile.out -covermode=atomic $d
if [ -f profile.out ]; then
cat profile.out >> coverage.txt
rm profile.out
fi
done
for d in $(go list -tags=integration ./... | grep -v vendor); do
# integration tests
go test -c -tags=integration -race -coverprofile=profile.out -covermode=atomic $d
testbin="./$(basename $d).test"
# only run it if it was built - i.e. if there are integ tests
test -x "${testbin}" && sudo "./${testbin}"
if [ -f profile.out ]; then
cat profile.out >> coverage.txt
rm -f profile.out
fi
done
|