【发布时间】:2011-10-04 04:55:33
【问题描述】:
所以,当我在我的 ZF/Doctrine 应用程序上运行测试时,一些测试碰巧破坏了 Doctrine Entity Manager,并且由于 EM 被关闭,所有顺序测试都失败了。
我在我的测试/bootstrap.php 中设置了 EM:
$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 方法重新打开 EM?
【问题讨论】:
标签: php phpunit doctrine-orm