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);
誰かがより良いアプローチを知っている場合は、私を修正してください。