Php Symfony功能测试在升级到2.2后提供无限循环

Php Symfony功能测试在升级到2.2后提供无限循环,php,phpunit,symfony-2.1,functional-testing,symfony-2.2,Php,Phpunit,Symfony 2.1,Functional Testing,Symfony 2.2,将Symfony从2.1升级到2.2后,我遇到了问题。 当一次运行所有功能测试时(请注意,在运行单个测试时,无论是哪一个测试,都不会发生这种情况),我在无穷循环中遇到一个错误 PHP Fatal error: Maximum function nesting level of '150' reached, aborting! in project_path\vendor\symfony\symfony\src\Symfony\Component\ClassLoader\DebugClassLo

将Symfony从2.1升级到2.2后,我遇到了问题。 当一次运行所有功能测试时(请注意,在运行单个测试时,无论是哪一个测试,都不会发生这种情况),我在无穷循环中遇到一个错误

PHP Fatal error:  Maximum function nesting level of '150' reached, aborting! in project_path\vendor\symfony\symfony\src\Symfony\Component\ClassLoader\DebugClassLoader.php on line 81
跟踪的一部分:

...
14. Symfony\Component\BrowserKit\Client->submit() project_path\other_path\Tests\Controller\LoginControllerTest.php:53
15. Symfony\Component\BrowserKit\Client->request() project_path\vendor\symfony\symfony\src\Symfony\Component\BrowserKit\Client.php:224
16. Symfony\Bundle\FrameworkBundle\Client->doRequest() project_path\vendor\symfony\symfony\src\Symfony\Component\BrowserKit\Client.php:264
17. Symfony\Component\HttpKernel\Client->doRequest() project_path\vendor\symfony\symfony\src\Symfony\Bundle\FrameworkBundle\Client.php:111
18. Symfony\Component\HttpKernel\Kernel->handle() project_path\vendor\symfony\symfony\src\Symfony\Component\HttpKernel\Client.php:61
19. Symfony\Component\HttpKernel\DependencyInjection\ContainerAwareHttpKernel->handle() project_path\app\bootstrap.php.cache:411
20. Symfony\Component\HttpKernel\HttpKernel->handle() project_path\app\bootstrap.php.cache:1101
21. Symfony\Component\HttpKernel\HttpKernel->handleRaw() project_path\app\bootstrap.php.cache:975
22. Symfony\Component\HttpKernel\Debug\TraceableEventDispatcher->dispatch() project_path\app\bootstrap.php.cache:990
23. Symfony\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch() project_path\vendor\symfony\symfony\src\Symfony\Component\HttpKernel\Debug\TraceableEventDispatcher.php:135
24. Symfony\Component\EventDispatcher\EventDispatcher->dispatch() project_path\vendor\symfony\symfony\src\Symfony\Component\EventDispatcher\ContainerAwareEventDispatcher.php:167
25. Symfony\Component\EventDispatcher\EventDispatcher->doDispatch() project_path\vendor\symfony\symfony\src\Symfony\Component\EventDispatcher\EventDispatcher.php:53
26. call_user_func() project_path\vendor\symfony\symfony\src\Symfony\Component\EventDispatcher\EventDispatcher.php:164
27. Symfony\Component\HttpKernel\Debug\TraceableEventDispatcher->Symfony\Component\HttpKernel\Debug\{closure}() project_path\vendor\symfony\symfony\src\Symfony\Component\EventDispatcher\EventDispatcher.php:164
28. call_user_func() project_path\vendor\symfony\symfony\src\Symfony\Component\HttpKernel\Debug\TraceableEventDispatcher.php:447
29. Symfony\Component\Security\Http\Firewall->onKernelRequest() project_path\vendor\symfony\symfony\src\Symfony\Component\HttpKernel\Debug\TraceableEventDispatcher.php:447
30. Symfony\Component\Security\Http\Firewall\AbstractAuthenticationListener->handle() project_path\vendor\symfony\symfony\src\Symfony\Component\Security\Http\Firewall.php:66
31. Symfony\Component\Security\Http\Firewall\AbstractAuthenticationListener->onSuccess() project_path\vendor\symfony\symfony\src\Symfony\Component\Security\Http\Firewall\AbstractAuthenticationListener.php:143
32. Symfony\Component\ClassLoader\DebugClassLoader->loadClass() project_path\vendor\symfony\symfony\src\Symfony\Component\Security\Http\Firewall\AbstractAuthenticationListener.php:0
33. Symfony\Component\ClassLoader\DebugClassLoader->findFile() project_path\vendor\symfony\symfony\src\Symfony\Component\ClassLoader\DebugClassLoader.php:95
...
在我升级所有测试之前,它们工作正常,现在在使用时抛出该错误:

$form = $crawler->selectButton('Login')->form();
$form['_password'] = '123ASDasd';
$form['_username'] = 'MattKing';
$crawler = $client->submit($form); //this is LoginControllerTest.php:53 from error above

另一个问题是在使用默认symfony翻译函数时。切换用户的区域设置后,测试抛出与上述相同的错误。当我注释掉切换区域设置时,发生了其他错误(如上面的错误)。请注意,它可能是由上述相同的问题引起的


我找了几天的理由,然后放弃了。知道如何解决这个问题吗?

我也有同样的问题。我已通过将以下内容添加到我的php.ini中解决了此问题:

xdebug.max_nesting_level = 200
XDebug不应该在生产服务器上运行,因此它不应该抛出错误


(请参阅)

您是在使用FOSUserBundle,还是这是您自己的登录实现?我使用上面的方法解决了这个问题:-)
$client = static::createClient();
$client->followRedirects(true);
$crawler = $client->request('GET', '/login'); // --> error
xdebug.max_nesting_level = 200