PHPUnit: обработка фатальных ошибок - PullRequest
20 голосов
/ 01 октября 2010

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

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

Спасибо

Ответы [ 2 ]

28 голосов
/ 01 октября 2010

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

phpunit --process-isolation ...

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

Время исполнения

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

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

2 голосов
/ 01 октября 2010

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

...