Après avoir passé une période sous PhpUnderControl, nous avons installé sur nos serveurs l’application Hudson. Le but étant de lancer quotidiennement des tests unitaires et Selenium sur un serveur d’intégration.

Après avoir configuré une configuration d’un projet « freestyle » ( voir les différents tutos ), il a fallu dire à Hudson comment lancer et traiter les différents tests. Pour celà :

  1. Se rendre sur le Job > Configurer
  2. « Ajouter une étape au Build » > Choisir « Executer un script shell »
  3. Dans le textarea qui apparait insérer la commande php adéquat, par exemple :
    cd /monpath/ && phpunit  --log-junit /reports_dir/phpunit.xml TestsSuite.php

Attention aux problèmes de droits sur le dossier reports_dir. Si après un build, il n’y a pas de fichier, penser à faire un petit chmod ;) .

Ensuite, dans la partie inférieur ( Actions à la suite du build ) :

  1. Cocher « Publish testing tools result report« 
  2. Cliquer sur Add > Choisir PhpUnit-3.4
  3. Remplir le textarea « Pattern » > indiquer l’endroit où vous avez envoyer le rapport PhpUnit ( voir commande ci-dessus )

Il est intéressant de rappeler que ma suite de tests unitaires lance ma suite de tests Sélénium.

Si à la fin du build il vous annonce que le fichier PhpUnit est introuvable, penser a vérifier votre version de PHPUnit ( 3.4 conseillée ) ou le nommage de votre fichier.

Commandes utiles :

Pour lancer selenium-rc server ( après s’être placé dans le dossier contenant le .jar )

java -jar selenium-server.jar -interactive

Pour lancer Hudson ( via le fichier .war )

java -jar hudson.war --httpPort=8125