phpstorm - 在 Behat 中启用 XDebug

标签 phpstorm xdebug behat

我正在使用 behat+mink。我写了一些功能,现在正在运行测试。

运行 Behat 测试时,如何启用 xdebug 以在 phpstorm 中的断点处停止?

最佳答案

我还没有用 Mink 尝试过这个,但这个配置允许我逐步调试 behat(behat 在远程服务器上运行):

使用 x-debug 配置您的服务器

xdebug config

值得注意的是,由于这是命令行,您需要编辑/etc/php5/cli/conf.d/20-xdebug.ini 下的 cli 配置。

  • 将 remote_host 设置为您正在使用 PHPSTORM 的计算机的 ip
  • 设置自动启动 = 1
  • 禁用connect_back,您将从服务器启动调试,因此没有连接回

  • 您也可以通过将值导出为 env 变量来执行此操作,而无需编辑您的 ini,只需记住每次启动新 shell(或添加到 .bash_profile 文件)时执行此操作:
    export XDEBUG_CONFIG="remote_host=<YOUR IP>"
    

    配置 PHPStorm 的调试器

    似乎默认情况下,PHPStorm 不理解 remote-cli 脚本,所以我们需要添加一个配置,告诉它期望一个 CLI 脚本来触发 xdebug
  • 打开运行菜单并选择“编辑配置”
  • 单击绿色“+”添加新配置并选择“PHP 远程调试”
  • 命名配置(例如 MyServer-Behat)
    Create new Debug Configuration
  • 在服务器:菜单下,选择您的远程服务器。
  • 如果您尚未配置远程服务器,请单击右侧的“...”按钮来完成此操作
  • 单击绿色“+”以添加服务器配置。给它一个名字(例如 MyServer)并在 Host
  • 下填写它的地址
  • 配置它的路径映射。如果您的 PHPStorm 计算机上的源文件路径与您的服务器不同,这一点很重要。您可以在我的示例中看到,我将本地结帐 (~/Work/Symfony/) 与我的服务器安装 (/var/www/) 相关联。我通过单击“服务器上的绝对路径”下右侧的空间并输入路径,专门为 src、bin、web、app 和供应商添加了映射。我在映射根目录时遇到了问题,所以我必须添加这些路径才能让我的调试器工作。
    enter image description here

  • 调试!

    设置完成后,从调试工具栏的下拉列表中选择您的配置,然后单击错误图标(您也可以使用运行菜单)启动调试器监听。这类似于默认的电话按钮(黄色圆圈),但它告诉 PHPStorm 使用您的新配置。
    enter image description here

    现在只需像往常一样从服务器运行 behat,调试器应该连接并在您放置的任何断点处停止。

    如果您怀疑它是否正常工作,请尝试切换“运行”菜单中的“在第一行中断”,因为这将使调试器在运行 behat 时立即中断(在 bin/behat 文件中)

    关于phpstorm - 在 Behat 中启用 XDebug,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27522054/

    相关文章:

    php - 通过 Zend_Registry::get() 类型提示 - 如何让 PhpStorm 可以理解导航到声明?

    php - 如何知道xdebug是否正确?

    php - 无法启用 Behat Mink 扩展

    Behat error : MinkExtension 1. 3 只支持MinkGoutteDriver的Goutte 1.x,不支持Goutte 2.x

    jquery - PhpStorm jQuery.noConflict() css 完成不起作用

    xml - 如何在 Phpstorm 中重新格式化 XML 文件?

    php - 如何让 PhpStorm 转到正确的声明

    php - 根据代码内容加载不同的 php.ini 文件

    xdebug - 带有 XDebug 堆栈跟踪的完整文件路径

    php - Behat 外部文件中的步骤定义