FuelPHPのモジュールでのユニットテスト post

モジュールを使った場合のテストの仕方です。

phpunit.xmlの変更

fuel/core/phpunit.xmlfuel/app/phpunit.xmlにコピーし、モジュール用のtestsuitesを追加します。

        <testsuite name="modules">
            <directory suffix=".php">../app/modules/*/tests</directory>
        </testsuite>

bootstrap_phpunit.phpの変更

fuel/core/bootstrap_phpunit.phpfuel/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

Tags: fuelphp, phpunit, testing