まっつんです。先日の 関西オープンソース 2009 でご紹介させていただいた Piece Framework の新しいプロダクト MakeGood ですが、今月 23 日にようやく最初のバージョンをリリースすることができました。早速皆様に使っていただけるよう、今回の記事では MakeGood の特徴と使い方をご紹介いたします。

MATSUFUJI Hideharu

MakeGood とは?

MakeGood とは PDT にユニットテスト実行機能 (PHPUnit のみのサポート) を付与する Eclipse プラグインであり、快適な テスト駆動開発 (TDD: Test Driven Development) のための環境の提供を目標とするプロダクトです。バージョン 0.1.0 現在、以下のような特徴があります。

  • PHP Explorer および Package Explorer からのテストの実行
  • PHP Editor からのテストの実行
  • テスト実行時にシステムインクルードパスが使用可能

MakeGood のインストールと構成については、インストール・構成ガイド をご覧ください。

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

MakeGood を導入すると、PHP Explorer/Package Explorer と、PHP Editor からのテストの実行ができるようになります。PHP Explorer/Package Explorer からテストを実行するには、リソースを選択し、コンテキストメニューから テストの実行 を選択します。

選択可能なリソースは以下のとおりです。

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

選択されたリソースの配下にあるテストはすべて実行されます。これは特定のフォルダー以下にあるテストをすべて実行したい場合などに便利です。

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

PHP Editor からのテストの実行

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

context-menu-on-editor.png

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

このファイルに関連するテストの実行 は、編集中のファイルがプロダクションコードの場合も有効であり、そのファイルに含まれるクラスとそのすべての派生クラスに依存するテストを実行します。

以下はこれらの振る舞いをまとめたものです。

テストコードを編集中の場合
メニュー 実行されるテスト
テストの実行 - コンテキスト カーソルがある位置の最小の単位 (メソッド、クラス、ファイル) のテスト
テストの実行 - クラス カーソルがある位置のクラスに含まれるテスト
テストの実行 - ファイル ファイルに含まれるすべてのテスト
このファイルに関連するテストの実行 ファイルに含まれるすべてのテストおよび派生クラスのテスト
プロダクションコードを編集中の場合
メニュー 実行されるテスト
テストの実行 - コンテキスト -
テストの実行 - クラス -
テストの実行 - ファイル -
このファイルに関連するテストの実行 ファイルに含まれるすべてのクラスおよび派生クラスに依存するテスト

プロダクションコードからテストを実行することができる という点は、MakeGood 0.1.0 の大きな特徴といえます。テストコードとプロダクションコード、どちらからもテストを実行できるので、素早いフィードバックを得ることができます。

キーバインディングによる操作の実行

MakeGood では、それぞれの操作についてキーバインディングを設定することができます。キーバインディングを駆使することで、テストの度にコンテキストメニューを開くことなく素早くテストを実行することができます。

keybinding.png

テスト実行時にシステムインクルードパスが使用可能

PDT の PHP 実行環境では、設定ファイル で定義されたインクルードパス (システムインクルードパス) はすべて破棄され、プロジェクトに対して設定されたインクルードパスのみが有効となります。とはいえ、システムインクルードパスを使用したい場合もあるでしょう。そこで MakeGood では PDT を拡張し、システムインクルードパスを使用できるようにしました。

システムインクルードパスを使用するには、プロジェクトプロパティの PHP Include Path を開き、システムインクルードパスの追加 ボタンをクリックします。

use-system-include-path.png
ノート: システムインクルードパスを設定すると、PHP Explorer の PHP Include Pathプロジェクト名/.project という要素が追加されます。ここは システムインクルードパス と表示したいところですが、0.1.0 では実装を見送りました。

おわりに

MakeGood の実装にあたっては多くの技術的課題がありました。それらを克服し、0.1.0 をリリースすることができたことを大変嬉しく思います。次のバージョンでは SimpleTest のサポート、テスト実行のリアルタイムな進捗リポートといった機能を追加する予定です。

Eclipse で PHP の開発を行っている方はもちろん、普段はテキストエディタをお使いの方も、この機会に是非お試しください。皆様のご意見、ご感想、パッチなどお待ちしております。

参考文献

トラックバック(0)
  • このブログ記事のトラックバックURL:
コメント