2009-10-28 22 views
12

私はEclipse PDT for PHPを使用しています。 PhpUnitテストを実行できます:うまく動作します。EclipseでいくつかのPhpUnitテストをデバッグします。

私のユニットテストはデバッグできません。 somebyは既にこれをしていますか? 誰かがこれを行うのに役立つことができますか?

ありがとう、 Messaoud

答えて

10

例が1000個の言葉よりも価値がある:

require_once 'PHPUnit/Framework.php'; 
require_once 'PHPUnit/TextUI/TestRunner.php'; 

class MyTestCase extends PHPUnit_Framework_TestCase { 

protected function setUp() { 
    parent::setUp(); 

} 

function testSimple() { 
    echo "horray !"; 
} 

protected function tearDown() { 

    parent::tearDown(); 
} 

static function main() { 

    $suite = new PHPUnit_Framework_TestSuite(__CLASS__); 
    PHPUnit_TextUI_TestRunner::run($suite); 
} 
} 

if (!defined('PHPUnit_MAIN_METHOD')) { 
    MyTestCase::main(); 
} 

重要なことは、次のとおりです。

  1. は、あなたのテストケース

  2. の主な方法を提供
  3. テストが直接実行されるかどうかテストする(v ia php MyTestCase.php)またはphpunitそのものに依存します。直接実行された場合 - テストランナーを起動するだけです。

テストケースをデバッグすることができます。不思議に思っている他人のために

+0

O MY GOD!もし私が最初に見始めたこの答え*年前に私はつまずいただけです!私はたくさんのことを試みましたが、これはちょうど*動作します!匿名ユーザー、ありがとうございます!ありがとうございました!! –

+0

あなたは気楽です。 – fracz

2

PHPUnitでのEclipse/Aptanaのを構成するための簡単な指示がある場合は、ここで私が見つけたウェブサイトです。

http://pkp.sfu.ca/wiki/index.php/Configure_Eclipse_for_PHPUnit

あなたは基本的に何をすべきかは、次のとおりです。

  1. PEARライブラリがプロジェクトのインクルードパスにあることを確認してください。ナビゲータウィンドウでプロジェクトを右クリックし、[プロパティ]をクリックします。 PHPインクルードパス(または私のバージョンではAptanaにPHPビルドパス)のセクションがあり、それを開いて、Eclipseがphpunitについて知っているようにインクルード/ビルドパスにPEARライブラリを追加します。
  2. phpunit.phpファイルを実行するデバッグ設定を作成します(Mac OS Xの場合のように、シバンで実行されている場合は.php拡張子をファイルに追加する必要があります)。 "開始アクション"スクリプトとしてphpunit.phpファイルを使用する場合、興味のあるPHPUnitテストファイルがphpunit.phpによって実行されるように "PHPスクリプト引数"を設定してください。あなたに合わせて、他のコマンドライン引数を追加してください。例えば。 --verboseは良いオプションです。また、$ {resource_loc}のような変数を使ってEclipseが現在のファイルと置き換えることもできます。
  3. デバッグ設定を実行してデバッグをお楽しみください!

テストファイルなどを変更する必要はありませんが、そのまま使用できます。

2

私は最終的にEclipse 3.4でコマンドラインと並行してデバッグを実行します。デバッグは、私たちは私たちのEclipseプラグインMakeGoodで、この問題を解決することができ、私の最小限のコード

require_once 'PHPUnit/Framework.php'; 
require_once 'PHPUnit/TextUI/TestRunner.php'; 
class XTest extends PHPUnit_Framework_TestCase{ 
    public function testX(){ 
     //... 
    } 
} 
if (!defined('PHPUnit_MAIN_METHOD')) { 
    header('Content-type:text/plain; charset=utf-8'); 
    PHPUnit_TextUI_TestRunner::run(new PHPUnit_Framework_TestSuite('XTest')); 
} 
5

、「PHPのWebページ」として実行されます。

MakeGoodは、テストを簡単にデバッグする方法を提供します。デバッグモードでのみテストを実行します。 詳細については、the user guideを参照してください。

Debugging a test

+0

私はこのプラグインが大好きです。いくつかのオプションをテストした後、UI、セットアップおよび安定性に最適です。 –

0

私はここの指示に従うことによって、私のユニットテスト内の私のsetUp()メソッドにブレークポイントを設定することによって確認されている:

How to Debug Your PHP Unit Tests in Eclipse

それが、/ usr/binが/コピーする必要phpunitファイルをプロジェクトに追加して(EclipseのGUIからアクセスできるように)、.php拡張子を追加します。そこから、あなたのデバッグ設定に行き、PHPファイルをそのphpunit.phpファイルに設定します。

私がbootstrap.phpファイルを提供してくれたYiiを使っているので、次の重要なステップは私にとって素晴らしい仕事でした。あなたのargsにこのようなものを入れて:

--bootstrap=${workspace_loc}/my-project/trunk/protected/tests/bootstrap.php ${workspace_loc}/my-project/trunk/protected/tests/unit/SomeClassToTest.php 
+0

リンクは2015年12月27日から壊れています –

関連する問題