我需要通过功能测试来测试我的控制器。 在每次执行功能测试之前,如何运行普通的sql脚本将数据库恢复到默认状态?
答案 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();
}
}
因此,我删除数据库,创建新的并加载所有灯具,现在,所有测试都可以运行。