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();
}
}