【问题标题】:PHPUnit Freezes when run with xdebug active and listeningPHPUnit 在 xdebug 处于活动状态和监听状态下运行时冻结
【发布时间】:2016-01-18 17:17:13
【问题描述】:

从昨天开始,我一直在为一个突然出现的完全奇怪的问题而苦苦挣扎。 我在 Symfony 项目中使用 PHPStorm。 PHPUnit 测试照常运行。如果我在 IDE 中为调试器连接激活侦听模式并运行测试,phpunit 会冻结,IDE 会在 30 秒后自动停止。我认为这与ide无关。如果我使用 MacGDBp,我也会遇到同样的情况。我在我的 OSX 10.11 上检查了所有与防火墙相关的东西,并在新的 Brew 环境中安装了 php。 PHP 是来自本地 OSX 和 Brew 的 5.6 版。

没有调试器我相当盲目:-o

【问题讨论】:

  • 我遇到了同样的问题 - 对我来说看起来像是一个 phpstorm 错误,因为它只是在升级到 phpstorm 10 后才发生
  • 我也在经历这个。
  • 我有类似的 PHPUnit 测试没有在 IDE 中终止。求助于在 IDE 之外运行测试并手动链接覆盖率数据。

标签: php debugging phpunit phpstorm xdebug


【解决方案1】:

确保您没有在后台运行另一个调试会话。

【讨论】:

  • 谢谢。这个提示给了我正确的方向。我在后台运行了第二个 phpstorm 实例来监听 xdebug。所以第二个实例捕获了我的测试,在第一个实例中什么也没发生。
【解决方案2】:

Xdebug 一次只能监听一个正在运行的 PHP 进程。这通常有两种可能性。

1) 正如@adrianGW 所说,调试器可能已经附加了另一个进程。

2) 您的程序尝试加载另一个 PHP 进程,并且该进程在 xdebug 释放当前线程之前无法启动。这很常见,PHPunit 将在自己的线程中运行测试,这样它们就不会弄乱彼此的环境。或者您正在您的应用程序中向同一服务器上的 php 脚本发出 http 请求,而第二个请求正在等待第一个请求完成,因此您被锁定直到第一个脚本时间结束

PHPstorm 中有两个修复:

1) 您可以将Max Simultaneous Conections 更改为大于1的数字

2) 您可以启用Ignore external connections through unregistered servers configurations,但这只有在额外线程的原因是对同一服务器上的另一个域的请求时才有效,xdebug 可以将其区分为未注册的服务器。

【讨论】:

    【解决方案3】:

    对我来说,原因是@runTestsInSeparateProcesses

    症状如下:当我在 Netbeans 中打开调试,然后运行 ​​export XDEBUG_CONFIG="idekey=netbeans-xdebug remote_connect_back=0 remote_host=10.0.2.2",然后运行 ​​phpunit tests/Unit/MarkAsScheduledUnitTest.php --filter=testHandleExceptionWithMocking,它只输出“Sebastian Bergmann 和贡献者的 PHPUnit 7.1.2”。和一个闪烁的光标并挂在那里。当我进入 Netbeans 并退出调试时,phpunit 测试就会运行。

    解决方案是在我只运行一个测试或一类测试(而不是整套测试)时暂时删除@runTestsInSeparateProcesses

    https://stackoverflow.com/a/37464247/470749 解释了我为什么要使用 @runTestsInSeparateProcesses

    Xdebug breakpoints always work except when using @runTestsInSeparateProcesses? 为我提供了有关如何在不暂时删除 @runTestsInSeparateProcesses 的情况下更轻松地运行单个测试的想法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多