Codecov Go Example
Note: use
-covermode=atomic
or-covermode=count
to show how many times a statement was executed.
Add to your .travis.yml
file.
language: go
go:
- 1.8.x
- tip
before_install:
- go get -t -v ./...
script:
- go test -race -coverprofile=coverage.txt -covermode=atomic
after_success:
- bash <(curl -s https://codecov.io/bash)
- All other CI you can simply run
bash <(curl -s https://codecov.io/bash)
.-race
is a suggestion, not required. Learn more at https://blog.golang.org/race-detector
If you see this
cannot use test profile flag with multiple packages
then use this shell template to execute your tests and store coverage output
#!/usr/bin/env bash
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
Then run this file as your test (ex. ./test.sh
)
Repository tokens are required for (a) all private repos, (b) public repos not using Travis-CI, CircleCI or AppVeyor. Find your repository token at Codecov and provide via appending -t <your upload token>
to you where you upload reports.