我在我的Apache上安装了xdebug,如果我在Netbeans中定义一个断点,执行就会很好。但是如果我用symfony phpunit:test-all
执行测试,执行将不会在给定的断点处中断。
有什么想法吗? cowabunga!
答案 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>
所有假设当然。