【发布时间】:2011-04-01 02:23:03
【问题描述】:
这里有人同时使用 Zend Framework、ZFDoctrine 和 PHPUnit 吗?
如何在每次测试运行时重建数据库? 如何区分本地/生产/测试环境?
您能分享一下您的单元测试设置吗?
我一直在尝试这样的事情:
// /tests/bootstrap.php
// ... setup paths and constants here
require_once 'Zend/Application.php';
// Create application, bootstrap, and run
$application = new Zend_Application(
APPLICATION_ENV,
APPLICATION_PATH . '/configs/application.ini'
);
$application->bootstrap('doctrine');
$provider = new ZFDoctrine_Tool_DoctrineProvider;
$provider->generateModelsFromYaml();
//$provider->buildProject(true);
但这会结束:
Notice: Constant APPLICATION_PATH already defined in /home/user/www/library/ZendFramework/1.10.7/library/Zend/Tool/Project/Context/Zf/BootstrapFile.php on line 106
Fatal error: Call to a member function getResponse() on a non-object in /home/user/www/library/zf-doctrine/library/ZFDoctrine/Tool/DoctrineProvider.php on line 271
未生成模型。
我在运行时遇到了类似的错误:
$provider->createDatabase();
但在这种情况下会创建数据库。
其他提供程序命令不起作用。
解决办法:
$provider = new ZFDoctrine_Tool_DoctrineProvider;
$registry = new Zend_Tool_Framework_Registry;
$provider->setRegistry($registry);
@$provider->buildProject(true);
如果有人知道更好的方法,请纠正我。
【问题讨论】:
标签: unit-testing zend-framework doctrine phpunit zfdoctrine