【Netbeans】PHPUnit・Xdebugの設定【php】
といっても、xamppインストールして、前に書いた記事と同様です・・・ので、PHPUnitの実行とデバッグの実行方法をメモしておきます。
Netbeansのphp設定
- ツールタブのオプションを選択する
- 一般タブを選択し、PHP5インタプリタ(php.exe)を指定する
- 単体テストタブを選択し、PHPUnitスクリプト(phpunit.bat)を指定する(例 C:\xampp\php\phpunit.bat)
- ファイルから新規プロジェクト作成を選択し、作成する。または、サンプルのAir Alliance(apacheの設定でアクセスできるようにしておくこと)を選択する。
- 作成したプロジェクトを右クリックし、構成を設定>カスタマイズを選択する。
PHPUnitによるテストコードの作成
Netbeansには、ソースコードからテストコードの雛形を生成する機能があります。作成手順を下記に示します。
- クラスを作成し、アクセス権3種メソッド(private・protected・public)を追加する。
- 作成したクラスファイルを開いたまま、ツールタブのPHPUnitテストを作成するを選択する。
- ソースファイルフォルダとは別のディレクトリを作成し、それをテストファイルフォルダとする。
- これでテストコードが作成されます。
生成されるコードの一部を下記に示します。
<?php require_once dirname(__FILE__) . '/../../web/classes/flight.php'; /** * Test class for Flight. * Generated by PHPUnit on 2011-10-29 at 17:57:23. */ class FlightTest extends PHPUnit_Framework_TestCase { /** * @var Flight */ protected $object; /** * Sets up the fixture, for example, opens a network connection. * This method is called before a test is executed. */ protected function setUp() { $this->object = new Flight; } /** * Tears down the fixture, for example, closes a network connection. * This method is called after a test is executed. */ protected function tearDown() { } /** * @todo Implement testSet_FID(). */ public function testSet_FID() { // Remove the following lines when you implement this test. $this->markTestIncomplete( 'This test has not been implemented yet.' ); } } ?>
publicメソッドのみテストメソッドが作成され、データ用意・完了時処理のためにメソッドが作成されています。
PHPUnitの実行
ソースコードを開き、実行タブからファイルをテストを選択(Ctrl + F6)。または、テストコードを開き、実行タブからファイルを実行を選択します(Shift + F6)
すると、テスト結果のウィンドウが開かれ、テスト結果が表示されます。今回の状態では、有効なテストケースが見つかりません、というメッセージと共にグリーンバー(成功)が表示されます。
テストケースを追加します。
public function testgetStringTest() { $this->assertEquals('test', $this->object->getStringTest(), 'actual is not test'); }
テストを実行します。実行すると、実行されたテストはありません。と表示されます。
完全な出力は出力ウィンドウにあります。と表示されるので、ウィンドウタブから出力>出力を選択します。出力ウィンドウが表示され、以下のようにエラーメッセージが表示されます。
Fatal error: Call to undefined method Flight::getStringTest() in C:\テストファイル.php on line 113
トレース結果など詳しく載っています。それよりも、視覚的にテストコードにエラーを表示して欲しいです・・・。
該当の行にカーソルをあてると、電球のマークが行番号に表示されます。マークをクリックするとEclipseのようにヒントが出ます。
今回は、「メソッド" getStringTest()" をクラス "クラス名" (ファイル名)に作成」と表示されました。これをクリックすると、実際に作成されます。すばらしい!
作成された状態でテストを実行するとレッドバー(失敗)が表示されます。テストをパスするように、testという文字列を返すようにします。グリーンバーが表示され、テストに成功しました。
デバッグの実行
こちらはあまりよく分かっていません・・・
- テンプレート用phpファイルを作成し、適当なphpコードを書いておく。
- このファイルにアクセスできるリンクを作成しておく。
- 作成したファイルの行番号をクリックし、ブレークポイントをつける。
- デバッグタブからファイルをデバッグを選択し、デバッグを開始する
これでNetbeansでもある程度開発できそうです。