Il y a plusieurs façons de ne pas exécuter un test particulier - le mettre dans une liste noire de sorte qu'il n'a jamais exécuté peut-être pas la manière - comme changer cela signifie l'édition de la liste noire, et vous finirez souvent par rebondir dans et hors du contrôle de version.
Il existe plusieurs autres moyens qui peuvent être plus appropriés:
Si un test est pas encore prêt à fonctionner:
$this->markTestIncomplete('This test has not been implemented yet.');
S'il y a une raison à l'extérieur il ne devrait pas être courir, le sauter:
if (!extension_loaded('mysqli')) {
$this->markTestSkipped('The MySQLi extension is not available.');
}
Vous pouvez également mettre cela dans la fonction setUp()
, donc il passera tous les tests dans une classe de test.
Vous pouvez faire un test dépend d'un précédent suivant:
public function testEmpty()
{
$stack = array();
$this->assertTrue(empty($stack));
return $stack; // also sends this variable to any following tests - if this worked
}
/**
* only runs if testEmpty() passed
*
* @depends testEmpty
*/
public function testPush(array $stack)
{
}
L'annotation @group -name- est l'un des meilleurs moyens d'arrêter spécifiquement, ou exécuter un groupe de tests
/**
* @group database
* @group remoteTasks
*/
public function testSomething()
{
}
testSomething()
est maintenant en deux groupes, et si l'on ajoute sur la ligne de commande (ou dans le config.xml) --exclude-group
paramètre. il ne sera pas exécuté. De même, vous ne pouvez exécuter que des tests appartenant à un groupe particulier - par exemple, un nom après une fonctionnalité ou un rapport de bogue.
Êtes-vous en essayant d'éviter l'exécution d'un ou plusieurs de vos tests? –
Oui, c'est exactement ce que j'essaie de faire. 1 classe de test = 1 fichier. –