FuelPHPのモジュールでのユニットテスト
モジュールを使った場合のテストの仕方です。
phpunit.xmlの変更
fuel/core/phpunit.xml
をfuel/app/phpunit.xml
にコピーし、モジュール用のtestsuitesを追加します。
<testsuite name="modules">
<directory suffix=".php">../app/modules/*/tests</directory>
</testsuite>
bootstrap_phpunit.phpの変更
fuel/core/bootstrap_phpunit.php
をfuel/app/bootstrap_phpunit.php
にコピーし、最後にモジュールをロードするように追加します。
// モジュールをロード
\Module::load('mymodule');
これを忘れると、モジュール内のクラスがオートロードできません。
Configファイルについて
Configファイルについては、モジュール内からは次のようにモジュール名なしで指定することもできます。
\Config::load('custom', true);
しかし、Requestが実行されていないユニットテストではモジュール内ではないと判断されるため、上記のコードをテストファイル内に記述しても読み込まれません。
以下のようなモジュール名を記載するコーディングスタイルで統一するのがよいのではないでしょうか。
\Config::load('mymodule::custom', true);
テストの実行
--testsuite=modules
を指定するとモジュール内のテストのみを実行できます。@groupアノテーションと組み合わせてもいいでしょう。
$ oil test --testsuite=modules
参考
Date: 2014/06/05