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.