atoum et Jenkins (ou Hudson) - tharkun/atoum GitHub Wiki
Il est très simple d'intégrer les résultats de tests atoum à Jenkins (ou Hudson) en tant que résultats xUnit
.
Si vous ne disposez pas encore d'un fichier de configuration pour atoum, nous vous recommandons d'extraire le répertoire ressources
de atoum dans celui de votre choix à l'aide de la commande suivante :
# php mageekguy.atoum.phar --extractRessourcesTo chemin/vers/un/repertoire
Une fois cette commande exécutée, vous trouverez dans chemin/vers/un/repertoire/ressources/configurations/runner
un fichier nommé cli.php.dist
que vous pourrez utiliser avec atoum et qui devrait ressembler approximativement à cela :
<?php
/*
Sample atoum configuration file.
Do "php path/to/test/file -c path/to/this/file" or "php path/to/atoum/scripts/runner.php -c path/to/this/file -f path/to/test/file" to use it.
*/
use \mageekguy\atoum;
/*
Write all on stdout.
*/
$stdOutWriter = new atoum\writers\std\out();
/*
Generate a CLI report.
*/
$cliReport = new atoum\reports\realtime\cli();
$cliReport->addWriter($stdOutWriter);
$runner->addReport($cliReport);
?>
Il ne reste plus qu'à ajouter à ce fichier de configuration les instructions nécessaires pour la génération du rapport xUnit
.
Pour cela, il faut commencer par créer le rapport correspondant et l'ajouter à atoum, à l'aide des instruction suivante :
/*
* Xunit report
*/
$xunit = new atoum\reports\asynchronous\xunit();
$runner->addReport($xunit);
Il faut ensuite ajouter le writer
qui permettra l'écriture du rapport xUnit
dans le fichier de votre choix :
/*
* Xunit writer
*/
$writer = new atoum\writers\file('/path/to/the/file/you/will/generate/atoum.xml');
$xunit->addWriter($writer);
Il n'y a plus qu'à indiquer à atoum le fichier de configuration qu'il doit utiliser lors de l'exécution des tests unitaires, afin de vérifier que tout fonctionne correctement :
# php mageekguy.atoum.phar -d /path/to/test/folder -c /path/to/atoumConfig.php
Il existe pour cela plusieurs possibilités selon la façon dont vous construisez votre projet.
Si vous utilisez un script, il vous suffit d'y ajouter la commande précédente.
Si vous passez par un utilitaire tel que ant, il suffit d'ajouter une tâche de type exec
à son fichier de configuration, de la manière suivante :
<target name="unitTests">
<exec executable="/usr/bin/php" failonerror="yes" failifexecutionfails="yes">
<arg line="/path/to/mageekguy.atoum.phar -p /usr/bin/php -d /path/to/test/folder -c /path/to/atoumConfig.php" />
</exec>
</target>
Vous noterez l'ajout du paramètre -p /path/to/php
qui permet d'indiquer à atoum le chemin vers le binaire PHP qu'il doit utiliser pour exécuter les tests unitaires.
Il suffit tout simplement d'activer la publication des rapports au format JUnit
ou xUnit
, en fonction du plug-in que vous utilisez, en lui indiquant le chemin d'accès au fichier généré par atoum.