Skip to content

Instantly share code, notes, and snippets.

@akovardin
Forked from rjeczalik/README.md
Created March 6, 2018 23:12
Show Gist options
  • Save akovardin/f308689d579d717d1f259464a78dd8fb to your computer and use it in GitHub Desktop.
Save akovardin/f308689d579d717d1f259464a78dd8fb to your computer and use it in GitHub Desktop.
Go, multiple packages and coveralls.io

Go, multiple packages and coveralls.io

Single profile for single Go package

For Go projects that consist of only one package, the following Travis configuration is enough to get started with coveralls.io. You may want to encrypt your $COVERALLS_TOKEN via Travis encryption keys though.

language: go
go:
  - 1.3.1

env:
  global:
    - PATH=$HOME/gopath/bin:$PATH

install:
  - go get code.google.com/p/go.tools/cmd/cover github.com/mattn/goveralls github.com/modocache/gover

script:
  - go test -coverprofile=.coverprofile .
  - goveralls -coverprofile=.coverprofile -service=travis-ci -repotoken $COVERALLS_TOKEN

Single profile for multiple Go packages

As of now (version 1.3.1) go tool does not support creating combined coverage profiles for multiple packages. A workaround may be to run go test separately for each package and combine the profiles into one; in order to achieve that go list can be used for globing test packages and creating the test command strings and gover command for concatenating the profiles.

language: go
go:
  - 1.3.1

env:
  global:
    - PATH=$HOME/gopath/bin:$PATH

install:
  - go get code.google.com/p/go.tools/cmd/cover github.com/mattn/goveralls github.com/modocache/gover

script:
  - go list -f '{{if len .TestGoFiles}}"go test -coverprofile={{.Dir}}/.coverprofile {{.ImportPath}}"{{end}}' ./... | xargs sh -c
  - gover
  - goveralls -coverprofile=gover.coverprofile -service=travis-ci -repotoken $COVERALLS_TOKEN
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment