Jenkins:Cloverでコードカバレッジ集計の設定をしよう
Jenkinsのコードカバレッジ集計してくれるプラグイン、Cloverの設定方法。
手順は簡単。
1、jenkins設定画面からプラグインインストール
2、ジョブの設定画面で集計xmlパス指定
3、phpunit.xmlを書く
以下、参考にさせて頂きました。ありがとうございます。
・PHPでTDD&CIワークショップ、Jenkins + PHP の各種プラグインパート資料
・CakePHP2.0+Jenkinsで継続的インテグレーションを行う方法
・JenkinsをCentOSにインストールしたときのメモ
環境
- Vagrant:CentOS6.4
- chefで各種インストール
Github:https://github.com/hakopako/chef-repo
参考:yumってなに?)初心者が5日間でVM環境をchefで構築した話 - Jenkins ver. 1.562
- PHP 5.5.12
- PHPUnit 4.0.17
- php-pecl-xdebugインストール済
注)こいつが無いとビルド後コンソール出力で以下の様になる。
The Xdebug extension is not loaded.
Cloverプラグインインストール
※ 今回はgithubのリポジトリをソースとしているので、gitプラグインもいれましょう。
jenkinsの管理 > プラグインの管理 > 利用可能
・ Clover plugin
・ Coverage/Complexity Scatter Plot PlugIn
をプラグインしてjenkinsを再起動。
ジョブ画面で各種設定
ジョブ作ったら、以下の通り設定
ソースコード
サンプルはgithub → こちら
シェルの実行
### シェルスクリプト ### # 設定ファイルを指定するバージョン ※こっちの方が良さそう phpunit --configuration=${WORKSPACE}/phpunit.xml test/ # オプションで結果出力先を指定するバージョン phpunit --coverage-html=reports/coverage_html/ \ --coverage-clover=reports/coverage.xml \ test/
Clover カバレッジレポートを集計
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?
とか言われて失敗。
あとはビルド
ビルド実行すれば以下のように成功失敗に加え、
カバレッジも表示されるようになります。