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.

Étape 1 : Ajout d'un rapport de type xUnit dans la configuration atoum

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

Étape 2 : Lancement des tests via Jenkins (ou Hudson)

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.

Étape 3 : Publier le rapport avec Jenkins (ou Hudson)

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.

⚠️ **GitHub.com Fallback** ⚠️