単体テストでブレークポイントを使用できるように PHP + xDebug + (x)Unit + Eclipse をセットアップするにはどうすればよいでしょうか?
-
22-08-2019 - |
質問
これを正しく動作させるためにかなり長い間試みましたが、うまくいきませんでした。基本的に、私は 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 graceful
とphpinfo
を行うと、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.(...) (...)