レンタルサーバー選びの迷いを解決!全力サポートします

Google or AdMax Promotion (srv)

PHPUnitのテストコード雛形の作成(phpunit-skeleton-generator+Eclipse)

「phpunit-skeleton-generator」を利用すると、
クラスに定義されているメソッドのテストソースのスケルトン(空定義)を、
自動で作成する事ができます。
テストの実態は基本的には自分で記述しますが、スケルトン作成だけでも十分便利です。
利用を検討してみてはいかがでしょうか。

PHPUnitのテストコード雛形の作成(phpunit-skeleton-generator+Eclipse)

PHPUnitの「phpunit-skeleton-generator」を利用するには、
Composerを利用した一括インストールが便利です。

以下の手順でインストールを行っています。

Eclipseの「phpunit-skeleton-generator」の利用設定(外部ツール構成)

Eclipseに「phpunit-skeleton-generator」の設定を行うには、
「実行」ー「外部ツール」-「外部ツールの構成」を選択します。

phpunit-skeleton-generator_st01

外部ツールの構成・PHPUnitのテストコード雛形の作成(skeleton-generator)

 

外部ツール構成ウィンドウが開いたら「新規の起動構成」を選択し、
新しく構成を作成します。

phpunit-skeleton-generator_st02

新規の起動構成・PHPUnitのテストコード雛形の作成(skeleton-generator)

 

作成した起動構成の名前を分かりやすく付け、
下部の項目それぞれに以下のように入力します。

ロケーションはComposerをインストールしたディレクトリ配下の、
phpunit-skeleton-generatorがインストールされているディレクトリの.batファイルを指定します。

例)「C:\composer」へインストールしたなら「\vendor\bin\phpunit-skelgen.bat」までのパス。
その他は以下の通り入力します。

  • ロケーション: C:\composer\vendor\bin\phpunit-skelgen.bat
  • 作業ディレクトリ: ${workspace_loc}
  • 引数: generate-test ${string_prompt:namespace\class} ${selected_resource_loc}

入力が完了したら「適用」をクリックして保存し「閉じる」で完了します。

phpunit-skeleton-generator_st03

外部ツールの設定・PHPUnitのテストコード雛形の作成(skeleton-generator)

 

(参考)2.5 phpunit-skelgenの組み込み|PHPの開発環境を構築する(その4): PHPUnit+MakeGoodを使う | 悠雀堂ブログ

 

「phpunit-skeleton-generator」の実行(テストソース作成)

「phpunit-skeleton-generator」を実行してテストソースを作成します。

テスト対象とするサンプルプログラム(クラスファイル)は以下のように定義しています。

phpunit-skeleton-generator_st17

テスト対象のクラス・PHPUnitのテストコード雛形の作成(skeleton-generator)

 

事前に、このテスト対象を開き対象のクラス名を確認しておきます。
※name spaceの定義がある場合は、name spaceもコピーしておきます。

phpunit-skeleton-generator_st04

テスト対象クラス名確認(コピー)・PHPUnitのテストコード雛形の作成(skeleton-generator)

 

では、テスト対象のクラスが定義されているファイルを、
PHPエクスプローラで選択した状態で「実行」-「外部ツール」と選択し、
先ほど作成した外部ツールの名前をクリックして実行します。

phpunit-skeleton-generator_st05

外部ツールの実行・PHPUnitのテストコード雛形の作成(skeleton-generator)

 

ダイアログが表示されクラス名の入力が求められます。
先ほどコピーしておいたクラス名を入力します。

「namespace\classname」の形式で入力します。

phpunit-skeleton-generator_st06

クラス名の入力・PHPUnitのテストコード雛形の作成(skeleton-generator)

 

実行されテスト対象に選択したソースと同じディレクトリに、
「クラス名+Test.php」の名前でファイルが作成されます。

これが、skeleton-generatorに作成されたテスト用のソースになります。

phpunit-skeleton-generator_st07

作成されたスケルトン・PHPUnitのテストコード雛形の作成(skeleton-generator)

 

作成されたディレクトリのままでは何がテストソースなのか混在してしまい、
リリース時に間違いの元になりますので、別のフォルダ(テスト用)などに移動しておきます。

テスト用ソースファイルを右クリックして、
「リファクタリング」-「移動」と選択します。

phpunit-skeleton-generator_st08

スケルトンをテストフォルダへ移動・PHPUnitのテストコード雛形の作成(skeleton-generator)

 

移動先の選択を求められますので、テスト用のフォルダなどを選択します。

phpunit-skeleton-generator_st09

移動先の選択・PHPUnitのテストコード雛形の作成(skeleton-generator)

 

ファイルが移動されました。

phpunit-skeleton-generator_st10

移動後のスケルトン・PHPUnitのテストコード雛形の作成(skeleton-generator)

 

「phpunit-skeleton-generator」テストファイルの実行

skeleton-generatorが作成したソースをそのまま実行してみます。

テストの実行はテスト用ソースファイルを選択した状態で、
右クリックして「テストの実行」を選択します。

phpunit-skeleton-generator_st18

テスト実行のメニュー選択・PHPUnitのテストコード雛形の作成(skeleton-generator)

 

下部のコンソールにエラーがずらっと表示されて正しく実行できていません。
またソースの横にはエラーの箇所に「×」マークが表示されています。

phpunit-skeleton-generator_st11

そのまま実行でエラー発生・PHPUnitのテストコード雛形の作成(skeleton-generator)

以下のようなエラーが発生した場合は、テスト対象のクラスファイルが、
テスト用ソースから参照できていないことを示しています。

 

skeleton-generatorの仕様なのか分かりませんが、
作成時にクラス名の入力まではしているのですが、
対象のファイルの読み込み部分の記述が出力されません。

その為個別に「require_once ‘~’;」などでテスト対象の読み込みを追記します。

phpunit-skeleton-generator_st12

ライブラリ読み込みの記述追記・PHPUnitのテストコード雛形の作成(skeleton-generator)

 

その状態で実行すると、エラー表示は消え、
無事実行されますが、実行結果はまだ「Incomplete(未完成)」1件表示になっています。
テストの内容を書いていないので、当然です。

phpunit-skeleton-generator_st13

再度そのまま実行でエラー解消・PHPUnitのテストコード雛形の作成(skeleton-generator)

 

markTestIncomplete()を実行する事で「未完成」であるという状態を示すことができます。

(参考)PHPUnit マニュアル – 第9章 不完全なテスト・テストの省略

 

タブを切り替えて「MakeGood」タブを選択してみると「エラー:1」と表示されています。

ちなみにこの「MakeGood」タブからもテストの実行ができます。
保存の度に実行させたりすることも可能です。

phpunit-skeleton-generator_st14

MakeGoodタブの表示(未完了)・PHPUnitのテストコード雛形の作成(skeleton-generator)

 

テスト用のメソッドの中身を修正し、テスト内容を記述します。
テストの記述方法については、以下のリファレンスを参考に記述します。

(参考)PHPUnit マニュアル – 第2章 PHPUnit 用のテストの書き方

そのまま実行するとコンソールに「OK」出力が確認できます。

phpunit-skeleton-generator_st15

テスト実行部を記述し実行・PHPUnitのテストコード雛形の作成(skeleton-generator)

 

「MakeGood」タブではグリーンバー表示になり「成功:1」と表示されます。

phpunit-skeleton-generator_st16

MakeGoodタブの表示(テスト成功)・PHPUnitのテストコード雛形の作成(skeleton-generator)

 

このようにして作成済みのクラスから、
テストの対象のスケルトンを自動的に作成してテストのひな形とすることができます。

またクラス側の記述段階からコメント部分でテストパターンを定義しておくと、
自動作成されるテストパターンを増やすことができます。

詳細は以下でご紹介しています。

 


プロモーション

Google or AdMax Promotion (srvpos)

公開日:

コンテンツナビ
すべて展開 | すべて省略

AdMax Promotion

カテゴリ
すべて展開 | すべて省略

QRコードからもこのURLを開けます。