Кто-нибудь здесь использует 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);
Если кто-то знает лучший подход, пожалуйста, поправьте меня.