在Behat中启用XDebug

时间:2014-12-17 09:20:30

标签: phpstorm xdebug behat

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

如何在运行behat测试时让xdebug在phpstorm中停止断点?

1 个答案:

答案 0 :(得分:4)

我还没有尝试使用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

  1. 打开“运行”菜单,然后选择“#34;编辑配置&#34;
  2. 点击绿色&#34; +&#34;添加新配置并选择&#34; PHP远程调试&#34;
  3. 命名配置(E.G. MyServer-Behat) Create new Debug Configuration
  4. 在Servers:菜单下,选择您的远程服务器。
    1. 如果您还没有配置远程服务器,请点击&#34; ...&#34;
    2. 右侧的按钮
    3. 点击绿色&#34; +&#34;添加服务器配置。给它命名(E.G. MyServer)并在主机
    4. 下填写它的地址
    5. 配置它的路径映射。如果PHPStorm计算机上的源文件路径与服务器不同,这一点很重要。您可以在我的示例中看到我将本地结帐(〜/ Work / Symfony /)与我的服务器安装(/ var / www /)相关联。我专门为src,bin,web,app和vendor添加了映射,方法是单击“#34;服务器上的绝对路径”右侧的空格&#34;并输入路径。我有问题只是映射根,所以我必须添加这些路径以使我的调试器工作。 enter image description here
  5. 调试!

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

    现在只需按照您通常从服务器运行的方式运行,并且您的调试器应该连接并停在您放置的任何断点上。

    如果您对是否正常工作有疑问,请尝试切换&#34; Break on First Line&#34;在运行菜单中,因为这会使调试器在运行behat时立即中断(在bin / behat文件中)