今からお前んちこいよ

多摩川沿いにて細々とお勉強。

Jenkins:Cloverでコードカバレッジ集計の設定をしよう

Jenkinsのコードカバレッジ集計してくれるプラグイン、Cloverの設定方法。

 

手順は簡単。

1、jenkins設定画面からプラグインインストール

2、ジョブの設定画面で集計xmlパス指定

3、phpunit.xmlを書く

 

以下、参考にさせて頂きました。ありがとうございます。

PHPでTDD&CIワークショップ、Jenkins + PHP の各種プラグインパート資料
CakePHP2.0+Jenkinsで継続的インテグレーションを行う方法
JenkinsをCentOSにインストールしたときのメモ

 

 

環境

 

Cloverプラグインインストール

※ 今回はgithubのリポジトリをソースとしているので、gitプラグインもいれましょう。

 

jenkinsの管理 > プラグインの管理 > 利用可能

・ Clover plugin

・ Coverage/Complexity Scatter Plot PlugIn

をプラグインしてjenkinsを再起動。

 

ジョブ画面で各種設定

ジョブ作ったら、以下の通り設定

ソースコード

サンプルはgithub → こちら

f:id:hakopako03:20140510152115p:plain

 

シェルの実行

f:id:hakopako03:20140510152141p:plain

 

### シェルスクリプト ###
# 設定ファイルを指定するバージョン ※こっちの方が良さそう
phpunit --configuration=${WORKSPACE}/phpunit.xml test/

# オプションで結果出力先を指定するバージョン
phpunit --coverage-html=reports/coverage_html/ \
        --coverage-clover=reports/coverage.xml \
        test/

 

Clover カバレッジレポートを集計

f:id:hakopako03:20140510152204p:plain

 

 

 

phpunit.xml書く

シェルスクリプトで設定ファイルを指定したらこれが必要。

このファイルでレポートの出力先を設定する。

他にもignoreとか色々できるっぽい

cd ジョブ名/workspace
vim phpunit.xml

//phpunit.xml
<phpunit>
    <logging>
      <log type="coverage-html" target="./reports/coverage_html/" title="Test Project" charset="UTF-8" yui="true" highlight="true" lowupperbound="35" highlowerbound="70"></log>
      <log type="coverage-clover" target="./reports/coverage.xml"></log>
    </logging>
</phpunit>

これを書かないと、

Publishing Clover coverage report...
Clover xml file does not exist in: /var/lib/jenkins/jobs/HOGE/workspace called: HUGA/clover.xml and will not be copied to: /var/lib/jenkins/jobs/HOGE/builds/YYYYDDHH_XXXXXX/cloverphp/clover.xml
Could not find 'build/coverage/build/logs/clover.xml'. Did you generate the XML report for Clover?

とか言われて失敗。

 

あとはビルド

ビルド実行すれば以下のように成功失敗に加え、

カバレッジも表示されるようになります。

f:id:hakopako03:20140510152224p:plain

f:id:hakopako03:20140510152236p:plain