プラグインのテスト
アプリケーションについてはlimeを使ったテストの解説があるのですが、プラグインのテストはどうやってやるのでしょう?
test-unitタスクが定義されているsfPakeTest.php を調べてみると、引数としてファイルパターンを与えることはできますが、sf_test_dir/unit がパターンの基点になっています。ということは、それを遡ってsf_plugin_dir側に移れるようなパスを与えるだけで済むかもしれません。
ということで、unitテストコードを含んでいたsfPropelActAsCommentableBehaviorPluginでやってみました。
C:\xampp\htdocs\dev\idm>symfony test-unit ../../plugins/sfPropelActAsCommentable BehaviorPlugin/test/unit/* Warning: require_once(C:\xampp\htdocs\dev\idm\apps\frontend\config\config.php): failed to open stream: No such file or directory in C:\xampp\htdocs\dev\idm\test \bootstrap\functional.php on line 26 Fatal error: require_once(): Failed opening required 'C:\xampp\htdocs\dev\idm\ap ps\frontend\config\config.php' (include_path='C:\xampp\htdocs\dev\idm\lib;C:\xam pp\htdocs\dev\idm\apps\\lib;;C:\xampp\php\pear/symfony\vendor;.;C:\xampp\php\pea r;C:\xampp\php\pear\') in C:\xampp\htdocs\dev\idm\test\bootstrap\functional.php on line 26 symfony test-unit ../plugins/sfPropelActAsCommentableBehaviorPlugin/test/unit
どうやら、frontendというアプリケーション名を前提にしているようです。
C:\xampp\htdocs\dev\idm>symfony init-app frontend
を実行してから、再度実行しました。
C:\xampp\htdocs\dev\idm>symfony test-unit ../../plugins/sfPropelActAsCommentable BehaviorPlugin/test/unit/* [Exception] Unknow class "sfTestObject"
今度は、sfTestObjectクラスがない、と文句を言われてしまいました。
sfPropelActAsCommentableBehaviorTest.phpを読んでみると
アプリケーション名としてfrontendを前提にしているのもsfTestObjectクラスを要求して例外を出力しているのも、テストコードの中でやっています。
どうやら、テストケース自体の実行の仕方としては、これでよいようです。functionalテストの方は実験していませんが、おそらく同じようなものだと思います。