GitHub + Travis CI + CoverallsでJavaプログラムのカバレッジ計測をする方法

Travis CICoverallsを使って、GitHubに公開しているJavaプログラムのカバレッジを測定する方法を以下に記載する(Mavenで管理されたJavaプロジェクトを想定)。

Travis CIとCoverallsの連携にはCoverallsの公式ページ(以下)で紹介されているcoveralls-maven-pluginを利用した。


ステップ1(事前準備)
GitHubTravis CIの連携は以下のサイト等を参考に実施しておく。

また、Coverallsのサイトにログインして、カバレッジ計測対象のGitHubリポジトリを有効化しておく。


ステップ2(pom.xmlの編集)
Javaプロジェクトのpom.xmlに以下を追加する。

<plugin>
    <groupId>org.eluder.coveralls</groupId>
    <artifactId>coveralls-maven-plugin</artifactId>
    <version>2.2.0</version>
</plugin>

GitHubのcoveralls-maven-pluginのREADMEを見ると、CoverallsのRepo Tokenも書いているが、GitHubの公開リポジトリを利用している場合には、記載してはダメのようだ。

次にpom.xmlに以下のような記載を追加することで、利用するカバレッジ測定ツールを指定する(以下はCoberturaの例)。JaCoCo等を使う場合にはcoveralls-maven-pluginのREAMMEを参照。

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>cobertura-maven-plugin</artifactId>
    <version>2.6</version>
    <configuration>
        <format>xml</format>
        <maxmem>256m</maxmem>
        <!-- aggregated reports for multi-module projects -->
        <aggregate>true</aggregate>
    </configuration>
</plugin>


ステップ3(.travis.ymlの編集)
GitHubTravis CI連携用に.travis.ymlファイルを作成していると思うが、その.travis.ymlに以下を追加する。

after_success:
  - mvn clean cobertura:cobertura coveralls:cobertura


以上で準備は完了。
GitHubソースコードをpushすると、自動的にTravis CIでビルドとテストが走り、その後テストデータがCoverallsに自動転送され、テストの統計データを見られるようになる。
CoverallsのプロジェクトページのTECHNICAL DETAILSにバッジが表示されているが、以下のようにカバレッジ率が表示されていれば(unknownじゃなくなっていれば)連携成功である。