Итак, когда я запускаю тесты в своем приложении ZF/Doctrine, некоторые тесты нарушают работу диспетчера сущностей Doctrine, и все последовательные тесты терпят неудачу из-за закрытия EM.
Я настроил EM в своих тестах/bootstrap.php:
$application = new Zend_Application(
APPLICATION_ENV,
APPLICATION_PATH . '/configs/application.ini'
);
$application->bootstrap();
(...)
$bootstrap = $application->getBootstrap();
$em = $bootstrap->getResource('doctrinemanager');
Затем я установил его внутри тестовой функции setUp() ($this->_service — это тестируемый сервис):
$em = App::getEntityManager();
$this->_em = clone $em;
$this->_service->setEm($this->_em);
И затем, когда я запускаю тест, который заставляет EM выдавать исключение и закрываться (и это правильное поведение для меня), он остается закрытым на протяжении всех тестов, которые, конечно, терпят неудачу из-за закрытия EM. Это просто не то поведение, которое я ожидаю от тестов, как вы можете догадаться.
Пробовал клонировать ЭМ перед установкой в сервисе, но не получилось.
Есть ли простой способ снова открыть EM, возможно, используя некоторые методы Doctrine?