我有一个本地ddev(基于docker) PHP Drupal 7 开发环境。我已经使用Behat Drupal Extension为此站点设置了 Behat 测试。
所有Behat上下文文件和关联的composer供应商文件夹都位于站点的Web根目录之外的测试文件夹中。文件夹结构类似于:
项目
测试
public_html
我已启用 xdebug 并使用 PhpStorm 。我已经设置了PhpStorm调试服务器并提供了正确的路径映射。
通过浏览器调试php代码效果很好,调试 CLI 命令效果很好。当我尝试通过CLI运行Behat测试时尝试调试所有代码时,会发生我的问题。
在PhpStorm PHP服务器配置中,如果仅设置testing
文件夹的路径映射,则可以调试测试文件夹中的任何代码,并且没有卷曲问题。我显然无法调试public_html
文件夹中的代码,因为我尚未设置路径映射。当我同时设置了testing
和public_html
文件夹的路径映射时,我可以调试所有代码,但是任何包含对站点本地URL的Mink curl_exec()
调用的behat步骤定义都将挂起。持续3到10分钟!
我的目标...
为了能够在运行testing
且不挂起public_html
的Behat测试时调试curl_exec()
和xdebug.remote_addr_header => no value => no value
xdebug.remote_autostart => On => On
xdebug.remote_connect_back => Off => Off
xdebug.remote_cookie_expire_time => 3600 => 3600
xdebug.remote_enable => On => On
xdebug.remote_handler => dbgp => dbgp
xdebug.remote_host => host.docker.internal => host.docker.internal
xdebug.remote_log => no value => no value
xdebug.remote_mode => req => req
xdebug.remote_port => 9000 => 9000
文件夹中的所有php代码。
我尝试过的...
我已将PhpStorm Debug Max同时连接设置为10,并尝试了20。
这是我的xdebug远程配置设置:
xdebug.remote_autostart=0
以下所有原因均导致卷曲挂起:
XDEBUG_CONFIG=idekey=PHPSTORM
并通过使用我的behat命令传递一个print(x[10:0:-1])
环境变量来启动Xdebug会话,并且
非常感谢您的帮助!
答案 0 :(得分:0)
在遵循@LazyOne的建议之后,我更加仔细地查看了Xdebug日志,并注意到在成功建立xDebug连接之后发生了挂起。这导致我两个可能的原因;一些尚未在PhpStorm调试工具窗口中注册的胭脂断点,或者网站上的某些内容正在延迟响应。
所以我做了以下事情:
1 Day
运行一次,因此将其切换为Never
。我的想法可能是Drupal Cron的执行被卡住了并且没有完成,所以每个HTTP请求都挂起了。它奏效了,现在我希望我分别测试了每个步骤,因为我不知道到底哪个是解决方案。我倾向于#1,因为当我关闭PhpStorm中的调试时,Behat测试将立即执行。无论哪种方式,如果您遇到类似的问题,请尝试以上两种方法。