Skip to content

Instantly share code, notes, and snippets.

@AlphaWong
Forked from rjeczalik/README.md
Created March 24, 2018 10:28
Show Gist options
  • Save AlphaWong/f36b2b564ada71b6deac0991aee5048e to your computer and use it in GitHub Desktop.
Save AlphaWong/f36b2b564ada71b6deac0991aee5048e 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