Intégrer des tests externes dans Hudson

Parfois, dans le monde de l’entreprise, les choses ne sont pas roses.
On n’a pas forcément de code Java sous la main, et les tests unitaires n’existent pas vraiment (alors l’intégration continue, c’est plus du domaine de la science-fiction qu’autre chose).
C’est ce qui m’est arrivé quand je suis arrivé chez Perigee.
Je suis passé à un autre langage sans tests unitaires, et donc sans intégration continue.
Au bout d’un moment, j’en ai eu assez. J’ai donc développé un équivalent réduit de jUnit version 2 ou 3. La seule différence avec jUnit, c’est que mon équivalent produit « spontanément » le fameux rapport XML. Et ce rapport peut être récupéré via un appel à un web service local. Une fois qu’on a ça, j’ai envie de dire que l’intégration continue est au coin de la rue : il faut « juste » un client web service qui stocke ce fichier XML dans Hudson
Ce qui se fait assez bien en groovy avec GroovyWS, comme le code ci-dessous le montre :
Il y a plusieurs « trucs » à noter dans ce script groovy :
  • D’abord, GroovyWS est utilisée avec grape, ce qui fait que les dépendances sont téléchargées à la première exécution (ce qui est terriblement long).
  • Ensuite, GroovyWS est en fait, d’après ce que j’ai compris, une surcouche d’Apache CXF (c’est ce qui fait que je n’ai pas à déclarer de classe coté client avant d’utiliser le web service, je crois)
  • Enfin, le fichier XML créé localement doit être indiqué à Hudson, via l’option « Publier le rapport des résultats des tests JUnit« 

Et une fois que c’est fait ? Eh bien, une fois que c’est fait, Hudson va régulièrement interroger notre application non Java pour récupérer les résultats des tests unitaires. C’est puissant, et ça marche franchement bien.

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s