単体テストでブレークポイントを使用できるように PHP + xDebug + (x)Unit + Eclipse をセットアップするにはどうすればよいでしょうか?

StackOverflow https://stackoverflow.com/questions/880479

質問

これを正しく動作させるためにかなり長い間試みましたが、うまくいきませんでした。基本的に、私は PHP 開発ツール (PDT) を備えた Eclipse (3.3)、PDT XDebug プラグイン、および SimpleTest eclipse プラグインを使用しています。

私がやりたいのは、SimpleTest 単体テストによって呼び出されるコードをデバッグすることです。コード カバレッジ レポートを生成できるため、SimpleTest は XDebug を明確に認識できますが、ブレークポイントで停止しません。

編集:XDebug とブレークポイントは Eclipse では正常に動作しますが、SimpleTest によって呼び出された場合には動作しないことを追加する必要があります。

誰かこれを正常に設定した人はいますか?ガフドキュメントはたくさんありますが、有用な情報はほとんどありません。

ありがとう!

役に立ちましたか?

解決

あなたがPHPのバージョンに右XDebugのバージョンがあり、php.iniファイルの先頭に以下を追加していることを確認します:

[xdebug]
zend_extension=full_path_to_your_xdebug.so 
xdebug.default_enable=On
xdebug.remote_enable=On
xdebug.remote_handler="dbgp"
xdebug.remote_host="localhost"
xdebug.remote_port=9000

次にapachectl gracefulphpinfoを行うと、XDebugのが存在し、アクティブであることを確認してください。もしそうであれば、すべてが正常に動作する必要があります。私はそれが私のためにする知っています。

編集の私は、全体の質問を読ん前に答えた。

あなたは環境変数を設定する必要があり、スクリプトを実行する前に、

export XDEBUG_CONFIG="idekey=session_name"

これは、PHPからこれを行うことは可能かもしれないが、私はこれをテストすることはできません。

putenv('XDEBUG_CONFIG="idekey=session_name"');

あなたが使用しているPHPのバイナリがロードされXDebugの拡張子を持つことを確認する必要があり、Apacheモジュールはそれを持っていますが、デフォルトのCLIインタプリタはしませんが、私は目的の異なるバージョンを実行します。私のシステムで

ここではいくつかの良いドキュメントの

他のヒント

Kris の答えをさらに詳しく説明すると、実稼働環境と開発環境を同じサーバー上で管理している場合は、xdebug 設定を次のいずれかに委任することをお勧めします。 php include またはあなたの人たちに virtualhosts に捧げられているもの dev または testing 環境:

  • 仮想ホストの構文は次のとおりです

    <virtualHost ....>
    
      (...)
    
      # Xdebug ENV
      php_flag xdebug.auto_trace on
      php_flag xdebug.idekey session_name
      php_flag xdebug.profiler_enable_trigger 1
      php_flag xdebug.(...)
    
      (...)
    
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top