如何在单元测试中设置PHP + xDebug +(x)Unit + Eclipse以使用断点?

spr*_*key 6 php eclipse debugging simpletest xdebug

已经尝试了相当一段时间才能使其正常工作但没有运气.基本上,我有Eclipse(3.3)与PHP开发工具(PDT),PDT XDebug插件以及SimpleTest eclipse插件.

我想要做的是调试SimpleTest单元测试调用的代码.SimpleTest显然可以看到XDebug,因为我可以生成代码覆盖率报告,但它不会在断点上停止.

编辑:应该添加XDebug和断点在eclipse中正常工作,而不是在SimpleTest调用时

有没有人成功设置过这个?有很多guff文档,很少有用的信息.

谢谢!

Kri*_*ris 3

确保您拥有适合您的 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
Run Code Online (Sandbox Code Playgroud)

然后执行apachectl graceful和 aphpinfo并确保 XDebug 存在且处于活动状态。如果是的话,一切都应该正常。我知道这对我有用。

编辑:我在阅读整个问题之前就回答了。

在运行脚本之前,您应该设置环境变量;

export XDEBUG_CONFIG="idekey=session_name"
Run Code Online (Sandbox Code Playgroud)

也许可以从 php 做到这一点,但我无法测试这一点:

putenv('XDEBUG_CONFIG="idekey=session_name"');
Run Code Online (Sandbox Code Playgroud)

您应该确保您使用的 php 二进制文件已加载 XDebug 扩展,在我的系统上,apache 模块具有该扩展,但默认的 CLI 解释器没有,但我故意运行不同的版本。

这里有一些很好的文档