Symfony2在每次功能测试之前运行sql数据集脚本

时间:2014-04-14 07:38:56

标签: symfony controller functional-testing

我需要通过功能测试来测试我的控制器。 在每次执行功能测试之前,如何运行普通的sql脚本将数据库恢复到默认状态?

1 个答案:

答案 0 :(得分:0)

我不知道你的测试功能是什么工具,但是使用Behat,我可以启动静态功能"准备"。 Behat web site

/**
 * @BeforeSuite
 */
public static function prepare(SuiteEvent $event)
{
    $base = 'php ' . escapeshellarg(__DIR__ . '/../../app/console') . ' ';

    $commands = [
        $base . 'cache:clear',
        $base . 'doctrine:schema:drop --force',
        $base . 'doctrine:schema:create',
        $base . 'doctrine:fixture:load --append',
    ];
    foreach ($commands as $command) {
        echo $command . "\n";
        $process = new Process($command);
        $process->run();
    }
}

因此,我删除数据库,创建新的并加载所有灯具,现在,所有测试都可以运行。