MakeGood ユーザーガイド

このユーザーガイドでは MakeGood 0.7.0 から MakeGood 1.2.0 について説明します。

English | 日本語

インストール

必要なソフトウェアのインストール

MakeGood を実行するためには、以下のソフトウェアが必要となります。

以下のサイトを参考にこれらのソフトウェアのインストールを行ってください。

ノート: PHP 5.3 用の Zend Debugger は Zend Server Community Edition に含まれています。

ノート: 既知の問題 ネストしたディレクトリをインクルードパスに追加できない にも目を通しておいてください。

MakeGood のインストール

最初に Eclipse を起動し、メニューバーから Help -> Install New Software... を選択します。次に Add... ボタンをクリックし、以下の更新サイトを登録します。

Name 任意の文字列または空
Location http://eclipse.piece-framework.com/

次に MakeGood のフィーチャーを選択し, Next > ボタンをクリックします。

次に Finish ボタンをクリックします。これでインストールが開始されます。インストールの途中で証明書に関するダイアログが表示されますので, Select All ボタンをクリックし、次に OK ボタンをクリックします。

インストールが終了すると Eclipse の再起動を奨めるダイアログが表示されるので, Yes ボタンをクリックします。これで Eclipse が再起動され、インストールが完了します。

PHP 実行ファイルの構成

MakeGood は PDT に定義済みの PHP 実行ファイルを使用するため、少なくとも 1 つの PHP 実行ファイルを構成する必要があります。

最初にメニューバーから Window -> Preferences... を選択し、続いて PHP -> PHP Executables を選択します。次に Add... ボタンをクリックし、PHP 実行ファイルを構成します。

次に Finish ボタンをクリックし、サイドメニューから PHP -> Debug をクリックします。次に Default Settings を以下のように構成します。

PHP Debugger Zend Debugger または XDebug
Server (任意)
PHP Executable (使用したい PHP 実行ファイル)

テストの実行

ノート: テストファイルに関する規約 にも目を通しておいてください。

ファイル保存時のすべてのテストの実行

ノート: この機能を有効にするには、プロジェクトのプロパティでテストフォルダーを指定する必要があります。詳細については テストフォルダーの指定 をご覧ください。

ワークスペースでファイルの変更・追加・削除が行われた時に、自動的にすべてのテストを実行します。ワークスペースの外側で変更が行われた場合、ワークスペースの同期が行われた時にテストを実行します。

この機能を有効にするには、MakeGood ビューの ファイル保存時のすべてのテストの実行 ボタンをボタンが押し込まれるようにクリックします。

ノート: この機能がデフォルトで有効になるかどうかは、構成パラメーター "ファイル保存時のすべてのテストの実行" 機能のデフォルト値の構成 の値によって決定されます。

すべてのテストの実行

ノート: この機能を有効にするには、プロジェクトのプロパティでテストフォルダーを指定する必要があります。詳細については テストフォルダーの指定 をご覧ください。

指定されたテストフォルダーに含まれるすべてのテストを実行します。

PHP Explorer および Package Explorer からのすべてのテストの実行

PHP Explorer/Package Explorer から任意のリソースを選択し、すべてのテストを実行します。

すべてのテストを実行するには、任意のリソースを選択し、コンテキストメニューから すべてのテストの実行 を選択します。

PHP Editor からのすべてのテストの実行

アクティブなエディターからすべてのテストを実行します。

すべてのテストを実行するには、エディター内で右クリックを行い、コンテキストメニューから すべてのテストの実行 を選択します。

PHP Explorer および Package Explorer からのテストの実行

PHP Explorer/Package Explorer から任意のリソースを選択し、テストを実行します。

テストを実行するには、リソースを選択し、コンテキストメニューから テストの実行 を選択します。

オリジナルサイズを見るには ここ をクリックしてください。

テストの実行が完了すると MakeGood ビューにテストの結果が表示されます。

オリジナルサイズを見るには ここ をクリックしてください。

以下のリソースが利用可能です。

  • フォルダー
  • ファイル
  • クラス (PHP Explorer のみ)
  • メソッド (PHP Explorer のみ)

フォルダーが指定された場合、サブフォルダーは再帰的にスキャンされます。

ノート: プロジェクトで初めてテストを実行する時、プリロードスクリプトを選択するダイアログが表示されます。プリロードスクリプトは、インクルードパス, オートローディング、エラーハンドリングなど、テスト実行の準備を行うスクリプトです。スクリプトは、テストランナー本体がロードされる前に評価されます。プリロードスクリプトを使わない場合は空のままで OK ボタンをクリックしてください。詳細については プリロードスクリプトの使用 をご覧ください。

PHP Editor からのテストの実行

ノート: 以下の機能を動作させるためには、ユーザー・ライブラリーなどによって、編集中のファイルの依存関係が Eclipse 上で解決されている必要があります。とりわけテストクラスの継承階層 (例えばプロジェクトが PHPUnit を使用する場合は PHPUnit_Framework_TestCase までの階層) の解決は必須です。

アクティブなエディターからテストを実行します。

テストを実行するには、エディター内で右クリックを行い、コンテキストメニューから テストの実行 または このファイルに関連するテストの実行 を選択します。

オリジナルサイズを見るには ここ をクリックしてください。

テストの実行 には編集中のファイルがテストコードの場合に有効となる 3 種類のサブメニュー, コンテキスト, クラス, ファイル があり、これらは異なる振る舞いを持ちます。

このファイルに関連するテストの実行 は、そのファイルに含まれるクラスとそのすべてのサブクラスに関連するテストを実行します。このコマンドは、編集中のファイルがプロダクションコードの場合も実行することができます。

これらの振る舞いをまとめると以下のようになります。

テストコードを編集中の場合

コマンド 実行されるテスト
テストの実行 - コンテキスト カーソル位置の最小の要素 (メソッド、クラス、ファイル) に含まれるテスト
テストの実行 - クラス カーソル位置のクラスに含まれるテスト
テストの実行 - ファイル ファイルに含まれるテスト
このファイルに関連するテストの実行 クラスとそのサブクラスに含まれるテスト

プロダクションコードを編集中の場合

メニュー 実行されるテスト
テストの実行 - コンテキスト n/a
テストの実行 - クラス n/a
テストの実行 - ファイル n/a
このファイルに関連するテストの実行 クラスとそのサブクラスに関連するテスト

テストのデバッグ

MakeGood には 実行モード および デバッグモード の 2 種類の動作モードがあります。現在の動作モードが 実行モード の場合、テストは単に実行されます。 デバッグモード の場合、テストはデバッガ内で実行されます。

テストをデバッグするには、MakeGood ビューの テストのデバッグ ボタンをボタンが押し込まれるようにクリックします。 テストのデバッグ ボタンが押し込まれている間、テストはデバッガ内で実行されます。

オリジナルサイズを見るには ここ をクリックしてください。

前回のテストの再実行

前回実行したテストを再度実行します。

ノート: ファイル保存時のすべてのテストの実行 によって実行されたテストは対象外です。

前回のテストを再実行するには、MakeGood ビューの テストの再実行 ボタンをクリックします。

テストの実行の停止

進行中のテストの実行を停止します。

テストの実行を停止するには、MakeGood ビューの テストの停止 ボタンをクリックします。

最初の失敗またはエラーの際の停止

最初の失敗またはエラーが発生した時にテストの実行を停止します。

この機能を有効にするには、MakeGood ビューの 失敗/エラーの際の停止 ボタンをボタンが押し込まれるようにクリックします。

構成

"ファイル保存時のすべてのテストの実行" 機能のデフォルト値の構成

このパラメーターは ファイル保存時のすべてのテストの実行 機能がデフォルトで有効となるかどうかを決定するために使われます。このパラメーターはデフォルトで 有効 になっています。

このパラメーターを有効・無効にするには、以下のようにワークスペースのプリファレンスを構成します。

  1. プリファレンスを開きます。
  2. MakeGood を選択します。
  3. チェックボックス ファイル保存時にすべてのテストを実行する をクリックします。

システムインクルードパスの使用

PDT の PHP 実行環境では、PHP ini file で定義されたインクルードパス (システムインクルードパス) は破棄され、代わりにプロジェクトのインクルードパスが有効となります。

MakeGood では、PHP ini file で定義されたインクルードパスを明示的に使用することができます。構成手順は以下の通りです。

  1. プロジェクトのプロパティを開きます。
  2. PHP Include Path を選択します。
  3. システムインクルードパスの追加 ボタンをクリックします。

ノート: システムインクルードパスを使用している場合、PHP エクスプローラ上の PHP Include Pathプロジェクト名/.project が表示されます。

プリロードスクリプトの使用

インクルードパス, オートローディング、エラーハンドリングなど、テスト実行の準備を行うスクリプトを指定することができます。スクリプトは、テストランナー本体がロードされる前に評価されます。

実際の例を見てみましょう。以下は、MakeGood のバックエンドとして利用されている Piece Framework のプロダクト、Stagehand_TestRunner のプリロードスクリプトです。

tests/prepare.php:

<?php
if (defined('E_DEPRECATED')) {
    error_reporting(E_ALL & ~E_DEPRECATED);
} else {
    error_reporting(E_ALL);
}

set_include_path(realpath(dirname(__FILE__) . '/../examples') . PATH_SEPARATOR .
                 realpath(dirname(__FILE__) . '/../src') . PATH_SEPARATOR .
                 get_include_path()
                 );

require_once 'PHPUnit/Framework.php';
require_once 'Stagehand/Autoload.php';

$loader = Stagehand_Autoload::legacyLoader();
$loader->addNamespace('Stagehand');
Stagehand_Autoload::register($loader);

Stagehand_LegacyError_PHPError::enableConversion();

プリロードスクリプトを使うには、以下のようにプロジェクトのプロパティを構成します。

  1. プロジェクトのプロパティを開きます。
  2. MakeGood を選択します。
  3. プリロードスクリプト を指定します。

プリロードスクリプトを使わない場合はテキストボックスの値を空にします。

テスティングフレームワークの選択

MakeGood は PHPUnit, SimpleTest, CakePHP (MakeGood >= 1.1.0) をサポートしており、あなたはプロジェクトで使うフレームワークを選択することができます。デフォルトは PHPUnit です。

テスティングフレームワークを選択するには、以下のようにプロジェクトのプロパティを構成します。

  1. プロジェクトのプロパティを開きます。
  2. MakeGood を選択します。
  3. テスティングフレームワーク を指定します。

テストフォルダーの指定

すべてのテストの実行 によってテストするフォルダーを指定します。

テストフォルダーを指定するには、以下のようにプロジェクトのプロパティを構成します。

  1. プロジェクトのプロパティを開きます。
  2. MakeGood を選択します。
  3. 追加 または 削除 ボタンを使って テストフォルダー を編集します。

キーバインディング

キーボードからコマンドを実行するために、MakeGood のコマンドに対してショートカットキーを割り当てることができます。

最初にメニューバーから Window -> Preferences... を選択し、続いて General -> Keys を選択します。次に type filter text と表示されているテキストボックス で makegood と入力します。次にキーバインディングを構成します。

デフォルトのキーバインディング

MakeGood コマンドに対するデフォルトのキーバインディングは以下のようになります。

Command Binding When
すべてのテストの実行 Alt+M A In Windows
テストの再実行 Alt+M R In Windows
テストの停止 Atl+M S In Windows
ファイル保存時のすべてのテストの実行 Alt+M U In Windows
テストのデバッグ Alt+M B In Windows
失敗/エラーの際の停止 Alt+M E In Windows
次の失敗/エラー J In MakeGood View
前の失敗/エラー K In MakeGood View
失敗/エラーのみ表示 F In MakeGood View
コンテキストに対するテストの実行 Alt+M C Editing PHP source
クラスに対するテストの実行 Alt+M L Editing PHP source
ファイルに対するテストの実行 Alt+M F Editing PHP source
このファイルに関連するテストの実行 Alt+M D Editing PHP source
テストの実行 Alt+M X In Windows
Show View (View: MakeGood) Views

テスティングフレームワーク固有の構成

PHPUnit

(MakeGood >= 1.1.0)

XML 設定ファイルによる PHPUnit 実行環境の構成

XML 設定ファイルによって PHPUnit 実行環境を構成することができます。

XML 設定ファイルを指定するには、以下のようにプロジェクトのプロパティを構成します。

  1. プロジェクトのプロパティを開きます。
  2. MakeGood を選択します。
  3. XML設定ファイル を指定します。

XML 設定ファイルフォーマットの詳細については PHPUnit Manual - 付録C XML 設定ファイル をご覧ください。

ノート: <testsuites> 要素と <selenium> 要素はサポートされません。

ノート: 既知の問題 PHPUnit XML ファイル内の相対パスが動作しない にも目を通しておいてください。

CakePHP

(MakeGood >= 1.1.0)

app フォルダのパスの指定

デフォルトでは app フォルダのパスとしてプロジェクトルートフォルダー以下の app フォルダーが使用されます。

app フォルダのパスを指定するには、以下のようにプロジェクトのプロパティを構成します。

  1. プロジェクトのプロパティを開きます。
  2. MakeGood を選択します。
  3. appフォルダ を指定します。

CakePHP ライブラリフォルダのパスの指定

デフォルトでは CakePHP ライブラリフォルダのパスとして app フォルダの親ディレクトリにある cake フォルダー (/path/to/app/../cake) が使用されます。

CakePHP ライブラリフォルダのパスを指定するには、以下のようにプロジェクトのプロパティを構成します。

  1. プロジェクトのプロパティを開きます。
  2. MakeGood を選択します。
  3. CakePHPライブラリフォルダ を指定します。

ノート

テストファイルに関する規約

テストファイルは以下の規約に準拠する必要があります。

PHPUnit SimpleTest CakePHP
ファイル名 FooBarTest.php または FooBarTestCase.php foo_bar.test.php
クラス名 FooBarTest または FooBarTestCase
スーパークラス PHPUnit_Framework_TestCase UnitTestCase または WebTestCase (MakeGood >= 1.1.0) CakeTestCase または CakeWebTestCase

Console ビューとフォーカス

データが標準出力および標準エラー出力に書き込まれる時に Console ビューがフォーカスを得るかどうかは Run/Debug -> Console 設定ページの以下の 2 つの構成パラメータによって決まります。

  • Show When Program Writes to Standard Out
  • Show When Program Writes to Standard Error

MakeGood によるテスト実行中は上記のパラメータは無効になり、致命的なエラーが出ない限り Console ビューにフォーカスが移動することはありません。

既知の問題

追加の INI ファイルがロードされない。

Eclipse PDT チームは バグ #324073 を修正するために -n オプションの導入を決定しました。これにより /tmp/zend_debug/... の php.ini のみがロードされ、すべての追加の INI ファイルはロードされなくなります。

この変更は PDT 2.2.0 M201010110334 (2010/10/11) から導入されています。

詳細については Issue #242 をご覧ください。

PHPUnit XML ファイル内の相対パスが動作しない。

(MakeGood == 1.1.0)

Issue #240 をご覧ください。

Xdebug を使ったテストの実行時に Debug Output ビューに何も出力されない。

これは PDT の既知の振る舞いです。この問題は現在の動作モードが 実行モード の際に発生します。

Xdebug を使ったテストの実行時に Console ビューの出力が不完全になる。

これは PDT の不具合です。詳細については以下のページをご覧ください。

Bug 282997 - Run As -> PHP Script: incomplete output

以下のように、デバッガと動作モードにより 標準出力 および 標準エラー出力 のリダイレクト先が異なります。

動作モードが実行モードの場合:

デバッガ Console Debug Output
Zend Debugger 標準エラー出力、デバッグ情報 標準出力
Zend Debugger (デバッグ情報なし) 標準出力、標準エラー出力 -
Xdebug 標準出力、標準エラー出力 -

動作モードがデバッグモードの場合:

デバッガ Console Debug Output
Zend Debugger 標準エラー出力、デバッグ情報 標準出力
Zend Debugger (デバッグ情報なし) 標準エラー出力、デバッグ情報 標準出力
Xdebug 標準出力、標準エラー出力 標準出力

この不具合は 標準出力 が Console ビューにリダイレクトされる場合に発生します。

MakeGood は Xdebug についてのみこれを修正します。Zend Debugger については修正されません。しかし、デバッグ情報を使う構成になっている場合 標準出力 は Console ではなく Debug Output ビューにリダイレクトされるため問題になりません。

ネストしたディレクトリをインクルードパスに追加できない。

現在のところ、PDT ではネストしたディレクトリをインクルードパスに追加することができません。

あなたの環境の PEAR ディレクトリ (php_dir) が /usr/share/php の場合、Stagehand_TestRunner/usr/share/php/src ディレクトリに配置されています。そして Stagehand_TestRunner の依存パッケージは /usr/share/php ディレクトリに配置されています。

以下は、この問題を解決する方法です。

ノート: この問題は Eclipse プロジェクトに報告済みです。Bug 296896 - Allow to use the nested directories as libraries.

preload-script.png (62.3 kB) Atsuhiro KUBO, 12/25/2009 12:13 pm

system-include-path.png (78.5 kB) Atsuhiro KUBO, 12/25/2009 12:17 pm

properties.png (88.6 kB) Atsuhiro KUBO, 04/14/2010 03:59 pm

runs-tests-from-the-php-editor.png (272.3 kB) Atsuhiro KUBO, 04/14/2010 05:43 pm

runs-tests-from-the-php-explorer-and-package-explorer2-800.png (173.3 kB) Atsuhiro KUBO, 04/14/2010 05:43 pm

runs-tests-from-the-php-explorer-and-package-explorer2.png (255 kB) Atsuhiro KUBO, 04/14/2010 05:43 pm

runs-tests-from-the-php-explorer-and-package-explorer1-800.png (137.6 kB) Atsuhiro KUBO, 04/14/2010 05:43 pm

runs-tests-from-the-php-explorer-and-package-explorer1.png (216 kB) Atsuhiro KUBO, 04/14/2010 05:43 pm

runs-tests-from-the-php-editor-800.png (185.2 kB) Atsuhiro KUBO, 04/14/2010 05:43 pm

debugs-test-800.png (127.6 kB) Atsuhiro KUBO, 06/01/2010 04:29 pm

debugs-test.png (173.1 kB) Atsuhiro KUBO, 06/01/2010 04:29 pm

preferences-run-all-tests-when-a-file-is-saved.png (44.8 kB) Atsuhiro KUBO, 06/01/2010 08:58 pm

install.png (119.8 kB) Atsuhiro KUBO, 07/31/2010 08:50 am

properties-ja.png (109 kB) Atsuhiro KUBO, 11/15/2010 03:15 am

Preload-script System-include-path Properties Runs-tests-from-the-php-editor Runs-tests-from-the-php-explorer-and-package-explorer2-800 Runs-tests-from-the-php-explorer-and-package-explorer2 Runs-tests-from-the-php-explorer-and-package-explorer1-800 Runs-tests-from-the-php-explorer-and-package-explorer1 Runs-tests-from-the-php-editor-800 Debugs-test-800 Debugs-test Preferences-run-all-tests-when-a-file-is-saved Install Properties-ja