Seleniumだけでは内部のclassを細かくテストできないので、PHPUnitでテストしようと思って、設定してみました。
もともと、/lib/ディレクトリにはclassを入れて、/test/ ディレクトリにはクラスファイルに対するテストファイルを置いています。
準備と書かれたxdebugのインストールを忘れ、Jenkinsのプラグインのチェックだけしちゃったところで
ビルド実行したものだからエラーが出ちゃいました。
phpunit --log-junit reports/unitreport.xml \ --coverage-html reports/coverage \ --coverage-clover reports/coverage/coverage.xml \ ./test/test_lib_*.php |
このワイルドカードによる複数ファイル指定はできなかったので、続き書きました。2011/10/27追記
これを実行したらこんなエラー。
The Xdebug extension is not loaded. Build step 'シェルの実行' marked build as failure Publishing Clover coverage report... No Clover report will be published due to a Build Failure Finished: FAILURE |
最初、Xdebugのインストールが分からなかったので、yum list *xdebug* などやってしまいましたが、
PECLで入るという事が分かりました。
http://www.doyouphp.jp/tips/tips_xdebug.shtml
xdebugの参考にしたサイトです。
# pecl install xdebug ---- Build process completed successfully Installing '/usr/lib/php/modules/xdebug.so' install ok: channel://pecl.php.net/xdebug-2.1.2 configuration option "php_ini" is not set to php.ini location You should add "extension=xdebug.so" to php.ini |
出力を端折りましたが、php.iniにextensionを書いて追加しろとのこと。
# php -i |fgrep -i extension extension_dir => /usr/lib/php/modules => /usr/lib/php/modules |
って出たので、書かなくてもいいかな?と思ったら書かねば使えませんでした。
PHP Warning: Xdebug MUST be loaded as a Zend extension in Unknown on line 0 |
また、このようなメッセージが出てしまったので、調べると、php.ini に書くのはこのようにすべきとのこと。
zend_extension=/usr/lib/php/modules/xdebug.so |
僕のコマンドラインでのテストファイル指定は致命的なものがあるんだけれど、別の投稿にします。
PHPUnitのコードカバレッジを使うにはxdebugが必要という事をまとめました。