テスト
oil test
(or oil t
) コマンドは Web アプリ、モジュール、パッケージに関連した PHPUnit のテストを実行します。FuelPHP でのユニットテストに関する完全なドキュメントは ユニットテスト のドキュメントページにあり、PHPUnit に関する完全なドキュメントは PHPUnit の Web サイト にあります。
設定
oil ユーティリティはそれ自身はさほど多くの設定を必要としません。しかし PHPUnit がシステムグローバルな環境にインストールされていない場合 (例えば、PHPUnit を Composer を使ってプロジェクト内にインストールしている場合)、oil に対して PHPUnit がインストールされている場所を知らせないといけません。app/config/oil.php
設定ファイルを新規に作成 (または oil パッケージの中からコピー) して、必要ならば以下の設定を変更します:
PHPUnit の設定
項目 | 型 | デフォルト | 説明 |
---|---|---|---|
phpunit.autoload_path | string |
|
PHPUnit の Autoload ファイルの場所。 |
phpunit.binary_path | string |
|
phpunit を実行するコマンド (必要ならばフルパスで)。 |
コマンドラインオプション
Test は PHPUnit のいくつかのコマンドラインオプションをサポートします :
--file=<file>
特定のファイルのテストのみを実行します。
--group=<group>
特定の (複数) グループのテストのみを実行します。
--testsuite=<testsuite>
特定の (複数の) テストスィートのみを実行します。
--exclude-group=<group>
特定の (複数) グループのテストを除外します。
--coverage-clover=<file>
コードカバレッジレポートを Clover の XML 形式で生成します。
--coverage-html=<dir>
コードカバレッジレポートを HTML 形式で生成します。
--coverage-php=<file>
PHP_CodeCoverage オブジェクトをシリアライズしてファイルにします。
--coverage-text=<file>
コードカバレッジレポートを テキスト形式で生成します。
--log-junit=<file>
テスト実行のレポートを Junit XML 形式で生成します。
--debug
テスト実行中にデバッグ情報を表示します。
これらのコマンドとその動作に関する情報については PHPUnit Documentationを参照してください。
PHPUnit テストランナーの設定
Oil は COREPATH
ディレクトリにある phpunit.xml
というテストランナーの設定をデフォルトで PHPUnit に渡します。
fuel/core/phpunit.xml
にある Fuel の基本的な phpunit.xml は以下を含みます :
<?xml version="1.0" encoding="UTF-8"?>
<phpunit colors="true" stopOnFailure="false" bootstrap="../core/bootstrap_phpunit.php">
<php>
<server name="doc_root" value="../../"/>
<server name="app_path" value="fuel/app"/>
<server name="core_path" value="fuel/core"/>
<server name="package_path" value="fuel/packages"/>
</php>
<testsuites>
<testsuite name="core">
<directory suffix=".php">../core/tests</directory>
</testsuite>
<testsuite name="packages">
<directory suffix=".php">../packages/*/tests</directory>
</testsuite>
<testsuite name="app">
<directory suffix=".php">../app/tests</directory>
</testsuite>
</testsuites>
</phpunit>
もしこの設定ファイルを変更する必要があるなら、APPPATH
にコピーして、そのコピーしたものを編集して下さい。Oil はデフォルトの代わりに新しい設定ファイルを認識し、あなたのカスタム設定を使用します。
例えばモジュールを開発しているならば、当然そのための以下の様なテストスイートを設定に追加したいと思うでしょう:
<testsuite name="modules">
<directory suffix=".php">../modules/*/tests</directory>
</testsuite>