Jie*_*eng 7 php phpunit zend-framework zend-test doctrine-orm
我如何从PHP,重新创建我的数据库,可能插入默认数据.目前,我打算使用单元测试的行为.
我使用Doctrine 2,Zend Framework 1.11 Zend_Test进行单元测试
我可以使用CLI
doctrine orm:schema-tool:update --force
Run Code Online (Sandbox Code Playgroud)
要么
doctrine orm:schema-tool:drop --force
doctrine orm:schema-tool:create
Run Code Online (Sandbox Code Playgroud)
我正在寻找一个PHP替代品,到目前为止找到了这个
但它看起来像
$tool = new \Doctrine\ORM\Tools\SchemaTool($em);
$classes = array(
$em->getClassMetadata('Entities\User'),
$em->getClassMetadata('Entities\Profile')
);
$tool->dropSchema($classes, \Doctrine\ORM\Tools\SchemaTool::DROP_DATABASE);
$tool->createSchema($classes);
Run Code Online (Sandbox Code Playgroud)
而且我真的不想指定模型类,尤其是当它们可以改变时.它应该只读取下面...中指定的所有类...就像使用CLI一样,您不需要指定所需的类?
$driverImpl = $config->newDefaultAnnotationDriver(array(realpath('../models')));
$config->setMetadataDriverImpl($driverImpl);
Run Code Online (Sandbox Code Playgroud)
您可以使用
PHPUnit Extension for Doctrine为PHPUnits Database扩展提供了几个钩子,并提供了一种非常方便的方法来针对数据库测试Doctrine 2代码.
自述文件中有一些示例,包括一个示例,说明如何动态创建数据库模式.Benjamin Eberlei是Doctrine 2的核心贡献者.
另请参阅B. Eberlei使用PHPUnit进行数据库测试的终极指南