У меня установлены PHPUnit и xdebug, а в моих файлах php.ini для CLI у меня есть:
display_errors = On xdebug.default_enable = 1
Я проверил, что обратная трассировка xdebug печатается, когда я создаю ошибку с помощью интерактивной консоли, но когда возникает ошибка при запуске phpunit, нет обратной линии?
Что происходит с задним ходом? Является ли phpunit скрытием от меня? Есть ли какие-то настройки, которые мне не хватает?
Благодаря!
Что происходит с задним ходом? Является ли phpunit скрытием от меня?
Да, PHPUnit отключает xdebug, по крайней мере, эти трассы (вызывая xdebug_disable()
Docs ).
Есть ли какие-то настройки, которые мне не хватает?
Вы можете добавить файл начальной загрузки, в который вы снова включите его с помощью xdebug_enable()
Docs . Это действительно работает, но покажет вам трассировку стека на любом исключенном исключении (пойманное или неотображенное).
См. Также: Проблема # 221 PHPUnit отключает xdebug , есть еще одна установка ini:
sebastianbergmann : Проблема заключается в
xdebug.show_exception_trace
конфигурацииxdebug.show_exception_trace
. Когда установлено значение1
, это будет «показывать трассировку стека всякий раз, когда возникает исключение», даже если это исключение действительно поймано ». Такое поведение прерывает вывод PHPUnit.Теперь, если я правильно помню, Derick рекомендовал использовать
xdebug_disable();
overini_set('xdebug.show_exception_trace', 0);
,
Это потому, что модульные тесты с phpunit запускаются с консоли, которая является приложением CLI. Вы должны иметь возможность запускать его с помощью:
php -dhtml_errors=1 `which phpunit` yourteststuff.