我们刚刚开始对我们的 CI 应用程序进行单元测试;我们编写的第一个测试运行通过,但 PHPUnit 总是在最后抛出错误消息:
user@server:~/public$ phpunit -c app/ --strict src/Acme/Bundle/SomeBundle/Tests/Controller/SomeControllerTest.php
PHPUnit 3.6.11 by Sebastian Bergmann.
Configuration read from /var/www/user/htdocs/public/app/phpunit.xml.dist
..
Time: 5 seconds, Memory: 130.00Mb
OO (2 tests, 2 assertions)
PHP Fatal error: Exception thrown without a stack frame in Unknown on line 0
PHP Stack trace:
PHP 1. {main}() /usr/bin/phpunit:0
PHP 2. PHPUnit_TextUI_Command::main() /usr/bin/phpunit:46
PHP 3. PHPUnit_TextUI_Command->run() /usr/share/php/PHPUnit/TextUI/Command.php:133
Fatal error: Exception thrown without a stack frame in Unknown on line 0
Call Stack:
0.0001 629992 1. {main}() /usr/bin/phpunit:0
0.0023 1235832 2. PHPUnit_TextUI_Command::main() /usr/bin/phpunit:46
0.0023 1236848 3. PHPUnit_TextUI_Command->run() /usr/share/php/PHPUnit/TextUI/Command.php:133
到目前为止,唯一的提示是它仅在一个(或多个)测试使用 [见下文] 在页面上发出请求时发生,因此它可能在某种程度上与会话相关。
$client = static::createClient();
$container = $client->getContainer();
$uri = $container->getParameter('url_frontend') . '/';
$client->request('GET', $uri);
这是我们的phpunit.xml.dist的链接
更新:
我设法获得了更多关于错误本身的信息:
1) Acme\Bundle\SomeBundle\Tests\Controller\SomeControllerTest::testIndexResponseStatusCode
RuntimeException: PHP Fatal error: Uncaught exception 'ErrorException' with message 'Warning: Unknown: Failed to write session data (user). Please verify that the current setting of session.save_path is correct (/tmp/sessions) in Unknown line 0' in /var/www/user/htdocs/public/vendor/symfony/src/Symfony/Component/HttpKernel/Debug/ErrorHandler.php:67
Stack trace:
#0 [internal function]: Symfony\Component\HttpKernel\Debug\ErrorHandler->handle(2, 'Unknown: Failed...', 'Unknown', 0, Array)
#1 {main}
thrown in /var/www/user/htdocs/public/vendor/symfony/src/Symfony/Component/HttpKernel/Debug/ErrorHandler.php on line 67