テスト

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.php'
PHPUnit の Autoload ファイルの場所。
phpunit.binary_path string
'phpunit'
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>