header image

携帯対応

QRコード

RING

人気ブログランキング

新着記事

6月 19th, 2009 PHP none Comments

タイトルに深い意味は無いんだけど、CakePHPのSimpleTestでコードカバレージを真面目に取得してみたので、そのメモとか。

使っている環境

XAMPP1.7.0
PHP5.2.8
MySQL 5.1.30
Apache 2.2.10
 

Xdebugの入手

このバージョンのXAMPPに含まれているXdebug2.0.3ではカバレージが取得できず、Apacheごと死んでしまう問題があるので、Xdebug2.0.0を利用する。
http://www.xdebug.org/download.phpにアクセスして、環境にあったモジュールを取得する。
xdebug2
僕の環境の場合は、XAMPPのPHP5.2.8だから、図の赤枠で囲んだリンクをクリックしてファイルを保存する。
php_xdebug-2.0.0-5.2.2.dllをphp_xdebug.dllにリネームしてphp\ext\の中に上書き保存する。
 

Xdebugの設定


php.iniの設定を変更してXdebugを有効にする必要がある。なお、Xdebugを利用する場合はZendDebuggerは同時利用できない。

[XDebug]
;; Only Zend OR (!) XDebug
zend_extension_ts="C:\xampp\php\ext\php_xdebug.dll"
xdebug.remote_enable=true
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.profiler_enable=1
xdebug.profiler_output_dir="C:\xampp\tmp"

設定が終わったらApacheを再起動しておく。

CakePHPの設定

CakePHP側では特に細かい設定はいらないのだが、当たり前ながら事前にSimpleTestが導入されていて、ユニットテストが書かれている必要がある。またユニットテストを実行するためにはdebugレベルを1以上にしなければならない。

カバレージの取得方法

まずはテストのトップページにアクセスする。下図のような画面が表示される。
test_top

ここで左メニューのAppの中のTest casesを選択しよう。そうすると作成済みのテストの一覧が表示されるはずだ。
test_top2
※ちと開発中のものの画面をキャプチャしたので具体的なモジュール名はマスキング。

上図のモジュール名をクリックするとテストが実行される。結果は以下のように表示される。
test_top3
※テストの結果が失敗するようであればカバレージ確認の前に失敗している箇所を確認して修正しておく。

この画面の最下部に「Analyze Code Coverage」というリンクがあるので、これをクリックすると再テストとカバレージの測定が開始される。実行が完了すると、以下のように表示される。
coverage

この結果では、カバレージは83.33%であり、ユニットテストが全ソースコードの分岐を網羅していないことが分かる。
またカバレージが100%でない場合は、画面に、カバーできていない範囲が表示される。下図を例にすると、84行目のピンクでハイライトされている箇所が未テストの箇所になる。
必ずしも全ての場合でカバレージを100%にしなければならないわけでは無いが、ビジネスロジック等の重要箇所のカバレージが取れていない場合は後々不具合が出たりする可能性もあるので、テストを追加しておくにこしたことは無い。

カバレージ取得の感想

CakePHPでSimpleTestによるユニットテストをしているのであれば、使って損は無い。これは間違いない。
毎回毎回カバレージを見る必要は無いが、開発イテレーションの中で定期的に確認して、自動テスト範囲を増やしておくことで、後々のイテレーションでの開発が楽になってくるだろう。

前回の記事でも書いたが、ユニットテストをするのならPHPでもMVCの分離はちゃんと考えること。FatControllerではなくFatModelへ。Web経由のテストに頼るとカバレージが測定しにくくなる。

参考リンク

CakePHP1.2ガイドブック

著者/訳者:安藤 祐介 新原 雅司 堂園 俊郎

出版社:毎日コミュニケーションズ( 2009-06-27 )

定価:¥ 3,360

単行本(ソフトカバー) ( 400 ページ )

ISBN-10 : 4839932468

ISBN-13 : 9784839932466


CakePHPによる実践Webアプリケーション開発

著者/訳者:安藤 祐介 岸田 健一郎 新原 雅司

出版社:毎日コミュニケーションズ( 2009-04-08 )

定価:¥ 3,150

Amazon価格:¥ 3,150

単行本(ソフトカバー) ( 264 ページ )

ISBN-10 : 4839930651

ISBN-13 : 9784839930653



CakePHP ポケットリファレンス (Pocket Reference)

著者/訳者:株式会社ブルーオーシャン 岡田 佳典

出版社:技術評論社( 2008-06-18 )

定価:¥ 2,604

Amazon価格:¥ 2,604

単行本(ソフトカバー) ( 448 ページ )

ISBN-10 : 4774135038

ISBN-13 : 9784774135038



“[CakePHP]晴れときどきcakephpでコードカバレージを測定する”へのコメントはありません。

コメントはありません。是非コメントしてください。

コメントする

XHTML: 以下のタグが利用可能です: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Trackback

 


ads

読まなきゃモグリ