2013-02-07 4 views
0

J'écris des tests unitaires et j'ai besoin d'appeler quelques commandes dans le test unitaire afin de créer une base de données de test. Cependant, lorsque j'appelle la commande, elle envoie les notifications à l'écran. Y a-t-il un moyen de l'éteindre? J'ai essayé d'exécuter --quiet, mais cela ne supprime pas les avis.Désactiver la sortie de la commande symfony2

$this->runConsole("doctrine:mongodb:schema:create", array("-q"=> null,"--env" => "test"));  

....

protected function runConsole($command, Array $options = array()) 
{ 
    $options = array_merge($options, array('command' => $command)); 

    return $this->_application->run(new \Symfony\Component\Console\Input\ArrayInput($options)); 
} 

les avis que je reçois:

[2013-02-07 16:24:43] doctrine.INFO: MongoDB query: {"deleteIndexes":true,"db":"xxxxxx","collection":"xxxxxx} [] [] 
[2013-02-07 16:24:43] doctrine.INFO: MongoDB query: {"deleteIndexes":true,"db":"xxxxxx","collection":"xxxxxx"} [] [] 
[2013-02-07 16:24:43] doctrine.INFO: MongoDB query: {"deleteIndexes":true,"db":"xxxxxx","collection":"xxxxxx"} [] [] 

Répondre

0

Utilisez CommandTester pour tester votre commande. Vous pouvez en lire davantage ici:

http://symfony.com/doc/current/components/console/introduction.html#testing-commands

+0

Désolé, je n'étais pas clair. Je n'ai pas besoin de tester la commande .. J'écris des tests qui appellent des commandes pour charger des données. – daSn0wie

+0

oh, d'accord. Mais de toute façon - vous ne devriez pas utiliser votre base de données (ou toute autre source de données) dans vos tests unitaires! Si vous utilisez une base de données, ce n'est plus un test unitaire. Je vous conseille de remplacer "fournisseur de données" approprié afin d'obtenir toutes les données dont vous avez besoin. Si vous montrez la méthode que vous voulez tester peut-être que je peux dire plus – Cyprian

+0

c'est un test fonctionnel pour mon contrôleur. Je veux m'assurer que le contrôleur stocke correctement les données. Y at-il une autre façon de tester cela? – daSn0wie

0

J'ai ajouté un config_test.yml dans l'application/config et a ajouté ces lignes (qui sont copiés à partir de mon config_dev.yml):

monolog: 
    handlers: 
     main: 
      type: stream 
      path: "%kernel.logs_dir%/%kernel.environment%.log" 
      level: debug 
     firephp: 
      type: firephp 
      level: info 
Questions connexes