yamashiro さんに質問してきたメモ 〜PHP & PHPUnit & Selenium & CI

id:Yamashiro0217(@yamashiro)に質問してきたメモ

2000行のPHP4スクリプトにどうテストを書いていくか

関数に切り出して部分的にテストを書いていく。

関数に切り出すときはテストがない状態で書いていく?

ざっくりしたテストを最初に書く。既存のレガシーコードの改善を一気にやろうとするとへこむので段階的にやるか、新しく作る部分は綺麗な世界を守るとか、メトリクス分析ツールなどで実際に改善されていってるのを見ながらやると安心が得られる。複数の相手を相手にするには1対1に分断して戦うべし。

Stagehand_TestRunner がすごく便利そうだった

ソースコードの変更を監視してテストを実行してくれるツール。phpconでのデモであったやつですね。

http://iteman.jp/blog/2009/10/php---stagehand-testrunner.html

PHPUnitって関数単位でテストできない?けど何かプラグインを使ってるか

filter オプション使えば出来る。eclipseプラグインだと普通に出来てた。NetBeansでもある?なかったら書くかも。

第5章 コマンドラインのテストランナー
http://www.phpunit.de/manual/3.5/ja/textui.html

SeleniumテストもCIツールでまわしているか

いまは回してないけど回す予定。

Seleniumテストは時間がかかるので普通のテストと分けた方がいいか

分けて置いた方がいい。

分けて置いてる場合どういうディレクトリ構成か(GUIのテストなので単純にクラスと対応しない)

適当。Jenkinsとかの都合で決める。

参考

PHPでTDD&CIワークショップ、Jenkins + PHP の各種プラグインパート資料
http://d.hatena.ne.jp/Yamashiro0217/20110619/1308491991

PHPカンファレンス2011 PHPとテストとCIと私〜愛するあなたのため〜
http://www.slideshare.net/yamashiro/php2011-phpci