2011-07-04 1 views
2

J'ai une suite qui appelle plusieurs suites et de nombreuses fonctions pour LOG, REPORT et Execution si j'essaie le même pattern 'Group ou Filter' elle exécute tous les cas de test sans exécuter le cas de test uniques sélectionnés.Groupe/Filtre dans phpunit n'exécute pas de cas de test spécifique

Edit: J'utilise une suite de tableau comme suit,

$suite->addTestSuite('adminSuite'); 
$suite->addTestSuite('staffSuite'); 
$suite->addTestSuite('merchantSuite'); 

// Run the test 
PHPUnit_TextUI_TestRunner::run($suite, array(
      'junitLogfile' => $path_log 
     )); 

J'appelle ce fichier par fourmi.

+1

de votre question J'ai compris que vous avez un fichier qui appelle toutes les suites qui ont des tests. et vos annotations sont dans ce cas de test pas dans le fichier que vous appelez. – lAH2iV

+1

Oui! et en raison de plusieurs fonctions dans mon fichier, il exécute tous les cas de test, si j'exécute un seul cas de test, alors le groupe/filtre fonctionne –

+0

Donnez un exemple ou deux comment vous invoquez PHPUnit. – hakre

Répondre

1

Du code que vous avez ajouté, il fait exactement ce que vous demandez. Comme vous exécutez les tests avec une configuration codée, vous devez également prendre soin de filtrer ou de sélectionner les groupes vous-même. Le filtre basé sur regex pour les noms de test est défini avec la méthode run en tant que paramètre (dans le tableau de paramètres). Les paramètres intéressants pour vous pourraient être: filter, groups et excludeGroups. Exemple:

// Run the test 
PHPUnit_TextUI_TestRunner::run($suite, array(
      'junitLogfile' => $path_log, 
      'filter' => $yourFilter, 
     )); 
+0

Vous pouvez également créer des classes de suites de tests simples au lieu d'un script qui génère et exécute une suite de tests. Vous passeriez le nom de la classe de suite de tests à 'phpunit' avec le filtre et les autres paramètres afin que vous n'ayez pas à les transmettre vous-même au coureur. –

Questions connexes