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

Symfony2在每次功能测试之前运行sql数据集脚本,symfony,controller,functional-testing,Symfony,Controller,Functional Testing,我需要通过功能测试来测试我的控制器。 如何在每次执行功能测试之前运行普通sql脚本将数据库恢复到默认状态?我不知道您的测试功能工具是什么,但通过Behat,我可以初始化静态函数“prepare” 所以,我删除数据库,创建新的并加载所有装置,现在,所有的测试都可以运行。可以让您到达那里,只是不需要一个脚本。相反,您可以定义将测试数据库设置为给定状态的数据装置或装置集。如果您的默认状态为空,那么bundle会使它变得非常简单。有关详细信息,请参阅文档。 /** * @BeforeSuite */

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

我不知道您的测试功能工具是什么,但通过Behat,我可以初始化静态函数“prepare”

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

可以让您到达那里,只是不需要一个脚本。相反,您可以定义将测试数据库设置为给定状态的数据装置或装置集。如果您的默认状态为空,那么bundle会使它变得非常简单。有关详细信息,请参阅文档。
/**
 * @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();
    }
}