测试覆盖率工具coveralls.io的配置介绍

Coverage Status 这是一个测试覆盖率图标,非常的漂亮。我们可以在很多github的项目主页上看到,本文将介绍如何自动生成这个图标。

1. 在其主页上https://coveralls.io/上开通你的项目

2. 找到项目的 repo_token

请参考下图中的标红部分:

3. 加密repo_token

为什么要加密repo_token?因为,这个repo_token是你的项目在coverall.io网站的唯一token,不能公开,但是又希望travis-ci.com网站使用这个repo_token,因此travis提供一个非对称加密工具来加密这个token串。详细原因和使用介绍可以参考官方文档

进入你的github项目所在目录,输入下列命令travis encrypt COVERALLS_TOKEN=aaaaa(记得替换你自己的repo_token)来加密上述repo_token,如下:

[ codeg@ ~/goini]$ travis encrypt COVERALLS_TOKEN=aaaaa
Faraday: you may want to install system_timer for reliable timeouts
Your Ruby version is outdated, please consider upgrading, as we will drop support for 1.8.7 soon!
Please add the following to your .travis.yml file:

  secure: "cSst9VQrOpZsBwKMku0vMoF53T6FhWVN50ZeV/dScUhXQndKd4WuOboxdM0w2wEKOURkYDt5R3uQZ7XU0J1ekXsZ775JZmSEEdWaKSU80Yp3qF/89hc8p3r0Ej4w/EeqFC3fSJINrQzXpetvEnqzAjZQGNMO/NSATxHRkBJc7CQ="

Pro Tip: You can add it automatically by running with --add. 

4. 在.travis.yml中集成coverall

coverall配置请见文档其中COVERALLS_TOKEN稍稍麻烦一点,请继续往下看。

将上述加密串以及coverall配置安下列格式填写到你项目的 .travis.yml 文件中,请参考示例,其内容如下:

language: go
go:
  - 1.3
  - tip
install:
  - go get code.google.com/p/go.tools/cmd/cover
  - go get github.com/mattn/goveralls
  - go get github.com/bmizerany/assert
script:
  - go test --bench=".*" -v
  - go test -v -covermode=count -coverprofile=coverage.out
  - $HOME/gopath/bin/goveralls -coverprofile=coverage.out -service=travis-ci -repotoken $COVERALLS_TOKEN 
env:
  - secure:   secure: "cSst9VQrOpZsBwKMku0vMoF53T6FhWVN50ZeV/dScUhXQndKd4WuOboxdM0w2wEKOURkYDt5R3uQZ7XU0J1ekXsZ775JZmSEEdWaKSU80Yp3qF/89hc8p3r0Ej4w/EeqFC3fSJINrQzXpetvEnqzAjZQGNMO/NSATxHRkBJc7CQ="