Когда происходит фатальная ошибка, процесс PHP завершается - это означает, что невозможно, чтобы этот же процесс PHP выполнял какой-либо дополнительный код, поскольку его больше нет.
Это также будет означать, что:
- вы, вероятно, не получите много отчетов
- другие тесты после того, который заканчивается фатальной ошибкой, не будут запускаться
- У вас есть тест, который проваливается - плохо.
Вам следует решить проблему: фатальная ошибка в вашем приложении bad ; это здорово, что ты обнаружил это с помощью своих автоматических тестов, но следующий шаг - убрать его; -)
Поскольку вы больше не можете запускать код PHP в том же процессе, который умер, единственное решение, которое я вижу, состоит в том, чтобы запустить другой процесс, запустить код очистки.
Основная идея заключается в следующем:
- Запустите ваши тесты
- Используйте другой, совершенно отдельный скрипт для запуска операций очистки
Конечно, это означает, что очистка будет выполнена только один раз, после того, как все тесты будут выполнены; но я полагаю, это лучше, чем ничего.
Теперь, как это сделать автоматизированным способом?
Возможно, самое простое решение - использовать shell-скрипт, который запускает обе команды; что-то вроде этого, я бы сказал:
#!/bin/sh
php /.../launch-tests.php
php /.../cleanup.php
И запустите свои тесты, запустив этот shell-скрипт.