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