Лучший способ создать тестовую базу данных и загрузить приборы на Symfony 2 WebTestCase?
У меня есть WebTestCase, который выполняет некоторые основные маршруты в моем приложении.
Я хочу, чтобы наsetUp
метод PHPUnit, создайте тестовую базу данных, идентичную моей основной базе данных, и загрузите в нее данные.
В настоящее время я делаю обходной путь и выполняю некоторые команды консоли, что-то вроде этого:
class FixturesWebTestCase extends WebTestCase
{
protected static $application;
protected function setUp()
{
self::runCommand('doctrine:database:create');
self::runCommand('doctrine:schema:update --force');
self::runCommand('doctrine:fixtures:load --purge-with-truncate');
}
protected static function runCommand($command)
{
$command = sprintf('%s --quiet', $command);
return self::getApplication()->run(new StringInput($command));
}
protected static function getApplication()
{
if (null === self::$application) {
$client = static::createClient();
self::$application = new Application($client->getKernel());
self::$application->setAutoExit(false);
}
return self::$application;
}
}
Но я совершенно уверен, что это не лучший подход, особенно потому, чтоdoctrine:fixtures:load
ожидает, что пользователь ударитY
символ для подтверждения действия.
Как я могу решить это?