Utiliser les tags - tharkun/atoum GitHub Wiki

Tout comme Behat, atoum vous permet de tagger vos tests unitaires et de n'exécuter que ceux ayant un ou plusieurs tags spécifiques.
Pour cela, il faut commencer par définir un ou plusieurs tags pour une ou plusieurs classes de tests unitaires.
Cela se fait très simplement grâce aux annotations et à la balise @tags :

<?php

namespace vendor\project\tests\units;

require_once __DIR__ . '/mageekguy.atoum.phar';

use mageekguy\atoum;

/**
@tags thisIsOneTag thisIsTwoTag thisIsThreeTag
*/
class foo extends atoum\test
{
   public function testBar()
   {
      /* ... */
   }
}

?>

De la même manière, il est également possible de tagger les méthodes de test.
Attention cependant, les tags définis au niveau d'une méthode prennent le pas sur ceux définis au niveau de la classe.

<?php

namespace vendor\project\tests\units;

require_once __DIR__ . '/mageekguy.atoum.phar';

use mageekguy\atoum;

class foo extends atoum\test
{
   /**
   @tags thisIsOneMethodTag thisIsTwoMethodTag thisIsThreeMethodTag
   */
   public function testBar()
   {
      /* ... */
   }
}

?>

Une fois les tags nécessaires définis, il n'y a plus qu'à exécuter les tests avec le ou les tags adéquates à l'aide de l'option --tags, ou -t dans sa version courte.
Si vous souhaitez exécuter directement votre fichier de test, la syntaxe est la suivante :

# php path/to/test/file -t thisIsOneTag

Attention, cette instruction n'a de sens que s'il y a ou ou plusieurs classes de tests unitaires dans le fichier et que au moins l'une d'entres elles porte le tag spécifié.
Dans le cas contraire, aucun test ne sera exécuté.
Si vous utilisez l'archive PHAR, la syntaxe est la suivante, respectivement si vous voulez exécuter une classe de tests unitaires spécifiques ou l'ensemble des classes contenues dans un répertoire :

# php mageekguy.atoum.phar -t thisIsTwoTag -f /path/to/test/File
# php mageekguy.atoum.phar -t thisIsThreeTag -d /path/to/tests/directory

Enfin, si vous utilisez les sources de atoum, la syntaxe sera la suivante :

# php /path/to/atoum/scripts/runner.php -t thisIsTwoTag -f /path/to/test/File
# php /path/to/atoum/scripts/runner.php -t thisIsThreeTag -d /path/to/tests/directory

Évidemment, il est possible de définir plusieurs tags :

# php mageekguy.atoum.phar -t thisIsOneTag thisIsThreeTag -d /path/to/tests/directory

Dans ce dernier cas, les classes de tests contenues dans le répertoire /path/to/tests/directory et ayant été taggés soit avec thisIsOneTag, soit avec thisIsThreeTag, seront les seules à être exécutées.