【发布时间】:2015-10-23 15:57:52
【问题描述】:
在我的 symfony2 应用程序中,我使用 phpunit 来验证每个路由的响应是否有代码 200。
在我运行测试之前,我想删除测试数据库并将我的生产数据库复制到名称 test 下(即我想重新启动我的测试数据库)。
我了解了public static function setUpBeforeClass(),但不知道如何删除和复制数据库。
我该怎么做?
到目前为止我的课:
<?php
namespace AppBundle\Tests\Controller;
use AppBundle\FoodMeUpParameters;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
require_once __DIR__.'/../../../../app/AppKernel.php';
class ApplicationAvailabilityFunctionalTest extends WebTestCase
{
public static function setUpBeforeClass()
{
}
/**
* @dataProvider routeProvider
* @param $route
*/
public function testAllRoutesAreLoaded($route)
{
$listedRoutes = $this->getListedRoutes();
$this->assertArrayHasKey($route, $listedRoutes);
}
}
【问题讨论】:
-
查看 Doctrine 的数据装置
-
是的,我对固定装置有所了解,我正在使用它,但我不知道如何在这里删除整个数据库...
-
加载数据夹具时,可以选择截断整个数据库,然后加载新数据。
-
好吧,$executor->execute($loader->getFixtures(), false);将清空数据库但不会删除它,对吗?然后我想复制另一个名为 test 的现有数据库。
-
哦,好的,您想从现有数据库中复制数据吗?这不是固定装置的工作方式,但这很好。最简单的方法是在旧数据库上使用 mysql 转储,然后使用该 .sql 文件导入 mysql。
标签: php unit-testing symfony testing phpunit