我设置了本地ddev(基于 docker)PHP Drupal 7开发环境。我已经使用Behat Drupal Extension为本网站设置了Behat测试。
所有 Behat 上下文文件和相关的 composer vendor 文件夹都位于站点 Web 根目录之外的 testing 文件夹中。文件夹结构类似于:
项目
测试
public_html
我启用了xdebug并使用了PhpStorm。我已经设置了一个 PhpStorm 调试服务器并提供了正确的路径映射。
通过浏览器调试 php 代码效果很好,调试CLI命令效果很好。当我在通过 CLI 运行 Behat 测试时尝试调试所有代码时,就会出现我的问题。
在 PhpStorm PHP 服务器配置中,如果我只为testing
文件夹设置路径映射,我可以调试测试文件夹中的任何代码,并且没有 curl 问题。我显然无法调试public_html
文件夹中的代码,因为我没有设置路径映射。当我为testing
和public_html
文件夹设置路径映射时,我可以调试所有代码,但任何包含对站点本地 url 的 Minkcurl_exec()
调用的行为步骤定义都会挂起 3 到 10 分钟!
我的目标...
为了能够在运行 Behat 测试的同时调试testing
和文件夹中的所有 php 代码而不会挂起。public_html
curl_exec()
我尝试过的...
我将 PhpStorm Debug Max Simultaneous Connections 设置为 10 并尝试了 20。
这是我的 xdebug 远程配置设置:
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
以下所有情况都导致 curl 挂起:
- 通过使用我的 behat 命令传入一个环境变量来
设置
xdebug.remote_autostart=0
并启动 Xdebug 会话XDEBUG_CONFIG=idekey=PHPSTORM
- 不通过curl 调用传递任何 cookie 或GET参数。
- 使用 curl 调用传递相同的idekey作为 cookie 和 GET 参数
- 使用 curl 调用将不同的 idekey 作为 cookie 和 GET 参数传递
任何帮助是极大的赞赏!!