Phpstorm 在Behat中启用XDebug

Phpstorm 在Behat中启用XDebug,phpstorm,xdebug,behat,Phpstorm,Xdebug,Behat,我正在使用behat+水貂。我编写了一些特性,现在正在运行测试 运行behat测试时,如何使xdebug在phpstorm中的断点处停止?我还没有用Mink尝试过这一点,但这是一种配置,允许我在远程服务器上运行behat时逐步调试behat: 使用x-debug配置服务器 注意,由于这是命令行,因此需要在/etc/php5/cli/conf.d/20-xdebug.ini下编辑cli配置 将远程主机设置为使用PHPSTORM的计算机的ip 设置autostart=1 禁用connect_ba

我正在使用behat+水貂。我编写了一些特性,现在正在运行测试


运行behat测试时,如何使xdebug在phpstorm中的断点处停止?

我还没有用Mink尝试过这一点,但这是一种配置,允许我在远程服务器上运行behat时逐步调试behat:

使用x-debug配置服务器

注意,由于这是命令行,因此需要在/etc/php5/cli/conf.d/20-xdebug.ini下编辑cli配置

将远程主机设置为使用PHPSTORM的计算机的ip 设置autostart=1 禁用connect_back,您将从服务器启动调试,因此没有要连接回的标志 通过将值导出为env变量,您也可以在不编辑ini的情况下执行此操作,但请记住,每次启动新shell或添加到.bash_概要文件时都要执行此操作:

export XDEBUG_CONFIG="remote_host=<YOUR IP>"
配置PHPStorm的调试器 默认情况下,PHPStorm似乎不理解远程cli脚本,因此我们需要添加一个配置,告诉它希望cli脚本触发xdebug

打开运行菜单并选择编辑配置 单击绿色+添加新配置并选择PHP远程调试 命名配置,例如MyServer Behat 在服务器:菜单下,选择您的远程服务器。 如果尚未配置远程服务器,请单击。。。右边的按钮 单击绿色+以添加服务器配置。给它一个名称,例如MyServer,并在Host下填写它的地址 配置它的路径映射。如果PHPStorm计算机上的源文件路径与服务器上的源文件路径不同,这一点很重要。您可以在我的示例中看到,我将本地签出~/Work/Symfony/与我的服务器安装/var/www/相关联。我特别添加了src、bin、web、app和vendor的映射,方法是单击服务器上绝对路径下右侧的空格并键入路径。我在映射根目录时遇到了问题,所以我必须添加这些路径以使我的调试器工作。 调试! 设置完成后,从调试工具栏的下拉列表中选择配置,然后单击bug图标。您还可以使用Run菜单启动调试器侦听。这类似于用黄色圈出的默认电话按钮,但它告诉PHPStorm使用您的新配置。

现在,只需像平常一样从服务器上运行,调试器就会连接并在您放置的任何断点上停止


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

您是否尝试单击“调试”按钮而不是“运行”?至于xdebug配置-与普通php代码相同。是的,我有。在phpstorm中配置了behat并将export-XDEBUG\u-CONFIG=idekey=phpstorm添加到我的bash\u配置文件中之后,它似乎可以工作。我只是想做完全相同的事情,但无法让它工作。你能进一步解释一下在我的bash_配置文件中添加的导出XDEBUG_CONFIG=idekey=PHPSTORM吗?哪一个bash配置文件以及放在哪里?谢谢你在用mac吗?对于我来说,我的bash配置文件位于:/Users/myUserName/.bash\u配置文件中,我刚刚添加了一行:export-XDEBUG\u-CONFIG=idekey=PHPSTORMThanks-Nealv,我想我有一个不同的配置问题。必须与本地的项目设置文件、部署到装载的服务器有关。设置xdebug.remote\u connect\u back=0以确保xdebug.remote\u主机和xdebug.remote\u端口值得到尊重,这一点非常重要。如果未设置为0,则只能调试behat步骤,而不能调试被测系统。