Я использую PHPUnit для модульных тестов, но когда запускается фатальная ошибка , скрипт умирает, и у меня нет правильного вывода PHPUnit.
Мне бы хотелось, чтобы выход PHPUnit корректно формировался , потому что он читается плагином для Eclipse. На самом деле фатальная ошибка останавливает PHPUnit, и в Eclipse плагин не может ничего интерпретировать (потому что скрипт PHPUnit имел ошибку, а не обрабатывал его).
благодаря
Вам нужно использовать функции изоляции процесса PHPUnit – запустите каждый набор тестов в новом процессе.
phpunit --process-isolation ...
Это единственный способ убедиться, что фатальные ошибки не нарушают ваш выход phpunit.
Изоляция процесса умножает время выполнения теста, потому что для каждого отдельного теста запускается новый экземпляр PHP, выполняется запуск бутстрапа и т. Д.
Чтобы исправить эту ситуацию, вы можете запускать полные тестовые примеры в отдельном процессе ( @runTestsInSeparateProcesses
) или только отдельные, которые, как известно, иногда приводят к летальному исходу ( @runInSeparateProcess
).
set_error_handler () вам не поможет. Вы можете обнаружить фатальные ошибки, используя register_shutdown_function ()