Подтвердить что ты не робот

PHPUnit: Неустранимая обработка ошибок

Я использую PHPUnit для модульных тестов, но когда срабатывает фатальная ошибка, script умирает, и у меня нет правильного вывода PHPUnit.

Мне бы хотелось, чтобы выход PHPUnit оставался правильно сформированным, потому что он читается плагином для Eclipse. На самом деле фатальная ошибка останавливает PHPUnit, и в Eclipse плагин не может ничего интерпретировать (потому что PHPUnit script имел ошибку, вместо обработки).

Спасибо

4b9b3361

Ответ 1

Вам нужно использовать функции изоляции процесса PHPUnit - запустите каждый набор тестов в новом процессе.

phpunit --process-isolation ...

Это единственный способ убедиться, что фатальные ошибки не нарушают выход phpunit.

Время выполнения

Изоляция процесса умножает время выполнения теста, так как для каждого отдельного теста запускается новый экземпляр PHP, выполняется запуск бутстрапа и т.д.

Чтобы внести изменения в эту ситуацию, вы можете запускать полные тестовые примеры в отдельном процессе (@runTestsInSeparateProcesses) или только одиночные, которые, как известно, иногда приводят к смерти (@runInSeparateProcess).

Ответ 2

set_error_handler() вам не поможет. Вы можете уловить фатальные ошибки, используя register_shutdown_function()