Skip to content

Instantly share code, notes, and snippets.

@olebedev
Forked from rjeczalik/README.md
Created December 30, 2016 06:31
Show Gist options
  • Save olebedev/27bd896f6c44976592b1545b152537be to your computer and use it in GitHub Desktop.
Save olebedev/27bd896f6c44976592b1545b152537be 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