Jenkinsでレポート出力 Cobertura & Findbugs & CheckStyle


みなさんこんにちは、masa です。今回は Jenkins でカバレッジレポートと静的解析レポートを出力する方法を取り上げてみたいと思います。まだ Jenkins が入っていないよという方は以前の記事を参照に入れてみてくださいね。

みなさんは Jenkins を使う目的は何ですか?おそらく大多数の方は git pull → ビルド→ サーバーへデプロイ  というサイクルで使用されているのではないでしょうか。

Jenkins にはプラグインが数百とあるので他にもできることはたくさんあるのですが、レポートを出す機能を使うことでプロダクトコードの品質を高める一助になります。

 

 そもそもカバレッジとか静的解析レポートってなに?

カバレッジレポートというのは全体のコードに対してテストがどれくらい完了したか、テスト進捗を表すものです。
静的解析というのはソース中にバグを発生させるようなコードや、非効率な書き方がないかなどを調べて、コードを強化するためのものです。

  • Cobertura (コベルトゥーラ)     : カバレッジレポート
  • FindBugs                       : 静的解析レポート(バグチェック中心)
  • CheckStyle                      : 静的解析レポート(コーディング規約チェック中心)

 

Cobertura 画面jenkins-3

FindBugs 画面
jenkins-5

ChechkStyle 画面
jenkins-4

 

 早速 Jenkins のレポート機能を追加する

3つのレポートですが、Jenkins からプラグインを入れればすぐに使えるというわけではありません。まずは Mavenプロジェクトの pom.xml に以下を追記して各プラグインをインストールします。

pom.xml  ※各プラグインのバージョンは適宜変えてください

    <build>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>cobertura-maven-plugin</artifactId>
                <configuration>
                    <formats>
                        <format>html</format>
                        <format>xml</format>
                    </formats>
                    <instrumentation>
                    </instrumentation>
                </configuration>
            </plugin>
        </plugins>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>cobertura-maven-plugin</artifactId>
                    <version>2.6</version>
                    <configuration>
                        <executions>
                            <execution>
                                <phase>package</phase>
                                <goals>
                                    <goal>cobertura</goal>
                                </goals>
                            </execution>
                        </executions>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-checkstyle-plugin</artifactId>
                    <version>2.14</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>findbugs-maven-plugin</artifactId>
                    <version>3.0.0</version>
                    <executions>
                        <execution>
                            <phase>compile</phase>
                            <goals>
                                <goal>findbugs</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
    <reporting>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>findbugs-maven-plugin</artifactId>
                <configuration>
                    <effort>Max</effort>
                    <xmlOutput>true</xmlOutput>
                </configuration>
            </plugin>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-checkstyle-plugin</artifactId>
              <version>2.14</version>
              <reportSets>
                <reportSet>
                  <reports>
                    <report>checkstyle</report>
                  </reports>
                </reportSet>
              </reportSets>
            </plugin>
        </plugins>
    </reporting>

 

次に Jenkins の管理画面から各プラグインをインストールします。

Jenkinsトップ>Jenkinsの管理>プラグインの管理>利用可能タブ>フィルター

以下を検索してインストール

  • cobertura
  • findbugs
  • checkstyle

jenkins-6

 

 各レポート機能を有効にする

1.プロジェクトの中の「設定」からビルド方法を指定する

  • ビルド>ゴールとオプションに以下を入力
    clean cobertura:cobertura

goal_option

 

2.プロジェクトの中の「設定」から以下を変更する

  • Checkstyle警告の集計にチェック入れる
  • FindBugs警告の集計にチェックを入れる
  • ビルド後の処理>Cobertura カバレッジ・レポートの集計>Cobertura XMLレポート パターンに以下を入力
    **/target/site/cobertura/coverage.xml

jenkins-7

 

以上でプロジェクトがビルドされるとレポートを見るリンクが現れて、ビルドに対する各レポート結果が見れるようになります。
jenkins-2

 

いかがでしたか?今日は Jenkins の便利なレポート機能について導入方法をご紹介しました。個人的にオススメは FindBugs です。日本語で自分のコードの欠点がすぐに確認できるのは楽しいです。みなさんもプロダクト品質向上の一助にレポート機能を追加してみてください。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>