Лучший способ создать тестовую базу данных и загрузить приборы на 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 символ для подтверждения действия.

Как я могу решить это?

Ответы на вопрос(7)

Ваш ответ на вопрос