読者です 読者をやめる 読者になる 読者になる

JenkinsでCakePHPのカバレッジを自動で測定

CakePHP Jenkins

前回Web上のtestsuiteでカバレッジを見るようにしたけど今度はJenkinsでそれを管理する。


Jenkinsで使うにはコマンドライン上で生成してやるといけるとおもうので--coverage-cloverオプションをつけて
cake testsuiteを実行してみたのだけどxdebugが有効じゃねえからって言われる。
なんでかなと思ったらWeb上でApache通して使う時のphp.iniとコマンドラインで使うphp.ini別のファイルなのね…

Apache通して使う時

/etc/php5/apache2/php.ini

CLIで使う時

/etc/php5/cli/php.ini

前回はapacheのほうにしか追加してなかったので動かなかったとさ追加すれば動きます。

Jenkins側

プラグインClover PHP pluginインストールする
プロジェクトのどこかにcoverageのデータを吐くようにする。相対パスで指定するので楽なところがいいです。
(参考サイトと同じくresultsディレクトリを作っておいてそこに吐くように)

ビルドのコマンド
lib/Cake/Console/cake testsuite --coverage-clover results/coverage.xml app AllTests
ビルド後の処理

Clover PHP カバレッジレポートを集計 にチェックをつけて相対パスを記述

results/coverage.xml

ビルドするとカバレッジが出るようになる
サイドバーメニューにClover概要レポートがでたり
Jobのトップに全体のカバレッジがでたりする