使用netbeans,xdebug,symfony和phpunit

时间:2010-06-29 10:53:15

标签: php netbeans symfony1 phpunit xdebug

我在我的Apache上安装了xdebug,如果我在Netbeans中定义一个断点,执行就会很好。但是如果我用symfony phpunit:test-all执行测试,执行将不会在给定的断点处中断。

有什么想法吗? cowabunga!

3 个答案:

答案 0 :(得分:9)

要调试命令行脚本,请先导出XDEBUG_CONFIG变量,如下所示:

export XDEBUG_CONFIG="idekey=netbeans-xdebug"(Unix / Linux / OS X)

set XDEBUG_CONFIG=idekey=netbeans-xdebug(Windows)

(注意:我没有测试Windows命令。你可能不得不逃避=字符,或者命令可能看起来有点不同。如果是这样的话,我希望有人来并纠正我评论。)

说明:当您为通过Apache运行的脚本打开调试会话时,NetBeans会将您的浏览器打开为以“XDEBUG_SESSION_START=netbeans-xdebug”结尾的URL。发生这种情况时,Xdebug知道拦截此参数并为您的浏览器提供一个包含此调试会话信息的cookie。

上面的命令相当于在命令行环境中设置cookie。

答案 1 :(得分:0)

当你说你在Netbeans中定义一个断点并且它破裂时,你是在谈论从Netbeans中运行单元测试,还是运行一个触发Netbeans断点的Web应用程序?

无论哪种方式,我的第一个猜测是两个场景使用不同的PHP.INI文件。获取一个单元测试来转储配置信息,你会很快看到我敢说。找到在命令行中使用的PHP.INI,并确保为该场景设置了XDebug。

我希望这是有道理的。我现在完全没有咖啡。

答案 2 :(得分:0)

我不使用netbeans,但我不认为netbeans会修改你放入断点的文件,我不认为symfony可以读取你的netbean配置以找出中断的位置。

此外,如果您在netbeans中运行测试所有任务并期望测试文件中断,我认为这不会像我相信的任务分支php进程那样工作,并且netbeans无法读取这些进程。< / p>

所有假设当然。