Melhor maneira de criar um banco de dados de teste e carregar acessórios no Symfony 2 WebTestCase?

Eu tenho um WebTestCase que executa algumas rotas básicas no meu aplicativo.

Eu quero, nosetUp método do PHPUnit, crie um banco de dados de teste idêntico ao meu banco de dados principal e carregue equipamentos nele.

Atualmente estou fazendo alguma solução e executando alguns comandos de console, algo como isto:

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

Mas eu tenho certeza que esta não é a melhor abordagem, especialmente porque odoctrine:fixtures:load espera que o usuário acerte umY char para confirmar a ação.

Como posso resolver isso?

questionAnswers(7)

yourAnswerToTheQuestion