2010-11-24 118 views
0

即时通讯尝试测试symfony应用程序的行为由BDD symfony plugin和im stucked,因为我意识到我不知道如何直接通过PHP重置数据库在我的BDD bootstraping文件中: - /。Symfony 1.4 Doctrine重置数据前测试

有没有人知道如何重置它,而无需加载灯具? (结果必须是空的数据库)

回答

0

如果你的意思是每测试(如运行test:all)重置,我有这样的一个test/bootstrap/db.php文件,并将其包含在unit.php年底或functional.php

new sfDatabaseManager($configuration); 

$doctrine = new sfDoctrineDropDbTask($configuration->getEventDispatcher(), new sfAnsiColorFormatter()); 
$doctrine->run(array(), array("--no-confirmation","--env=test")); 

$doctrine = new sfDoctrineBuildDbTask($configuration->getEventDispatcher(), new sfAnsiColorFormatter()); 
$doctrine->run(array(), array("--env=test")); 

$doctrine = new sfDoctrineInsertSqlTask($configuration->getEventDispatcher(), new sfAnsiColorFormatter()); 
$doctrine->run(array(), array("--env=test")); 

这假定$configuration定义例如您的unit.phpfunctional.php文件,因为它通常是默认情况下。

以上内容与内置的测试套件一起使用,但我相信您可以在您的BDD引导程序中适当地扩展/实施它。

+0

Fantastico!谢谢 :-) – palmic 2010-11-25 10:28:04

0

我可能会误解,但不能只是运行构建?

symfony doctrine:build --all 
+0

是的,但在测试bootpatching programmaticaly,所以richsage有一个线索。也谢谢你。 – palmic 2012-05-08 20:13:23