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