Я использую Symfony 3.1.9 и PhpUnit 5.6.5.
Всякий раз, когда в контроллере возникает исключение, оно обрабатывается Symfony, и трассировка стека отображается в представлениях.
Как я могу это исправить и сделать вывод phpunit исключением?
Мой конфиг phpunit:
<?xml version="1.0" encoding="UTF-8"?>
<!-- https://phpunit.de/manual/current/en/appendixes.configuration.html -->
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.8/phpunit.xsd"backupGlobals="false"colors="true"bootstrap="app/autoload.php">
<php>
<ini name="error_reporting" value="-1" />
<server name="KERNEL_DIR" value="app/" />
</php>
<testsuites>
<testsuite name="Project Test Suite">
<directory>tests</directory>
</testsuite>
</testsuites>
<filter>
<whitelist>
<directory>src</directory>
<exclude>
<directory>src/*Bundle/Resources</directory>
<directory>src/*/*Bundle/Resources</directory>
<directory>src/*/Bundle/*Bundle/Resources</directory>
</exclude>
</whitelist>
</filter>
</phpunit>
Изменить: Кажется, связано с тем, как ветка отрисовывает исключения в тесте и dev одинаково. Как указано в https://symfony.com/doc/current/configuration/environments.html :
Независимо от среды приложение Symfony может быть запущено с
режим отладки установлен в true или false. Это влияет на многие вещи в
приложения, такие как отображение трассировки стека на страницах ошибок или если кэш
файлы динамически перестраиваются при каждом запросе. Хотя не
требование, режим отладки, как правило, устанавливается в true для разработчиков и тестов
окружение и ложь для прод среды.
Теперь, как мы можем установить параметр kernel.debug в тесте?
На данный момент, кажется, лучший вариант — добавить строку в config_test.yml, чтобы отключить обработчик исключений для веток.
twig:
exception_controller: false
Других решений пока нет …