Итак, когда я запускаю тесты в своем приложении ZF / Doctrine, некоторые тесты нарушают работу Doctrine Entity Manager, и все последовательные тесты терпят неудачу из-за закрытия EM.
Я установил EM в своих tests / 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. Как вы можете догадаться, это просто не то поведение, которое я ожидаю от тестов.
Я пробовал клонировать ЭМ перед установкой его в сервисе, но это не сработало.
Может быть, есть простой способ снова открыть ЭМ используя некоторые методы Doctrine?