6.2. Automatisez vos tests unitaires et d'intégration

Le premier sujet que nous allons regarder est comment intégrer vos tests unitaires dans Jenkins. Que vous maîtrisiez l'approche Test-Driven Development, ou que vous écriviez des tests unitaires avec une approche plus conventionnelle, ce seront probablement les premiers tests que vous voudrez automatiser avec Jenkins.

Jenkins est excellent dans l'analyse des résultats de vos tests. Cependant, c'est à vous d'écrire les tests appropriés et de configurer votre script de build pour qu'il les exécute automatiquement. Heureusement, intégrer des tests unitaires dans vos builds automatisés est généralement aisé.

Il y a de nombreux outils de tests unitaires, avec la famille xUnit occupant une place prépondérante. Dans le monde Java, JUnit est le standard de facto, bien que TestNG soit aussi un framework de test unitaire populaire avec un certain nombre de fonctionnalités innovantes. Pour les applications C#, le framework NUnit propose des fonctionnalités similaires à celles fournies par JUnit, comme le fait Test::Unit pour Ruby. Pour C/C++, il y a CppUnit, et les développeurs PHP peuvent utiliser PHPUnit. Et cette liste n'est pas exhaustive !

Ces outils peuvent aussi être utilisés pour les tests d'intégration, les tests fonctionnels, les tests web et ainsi de suite. De nombreux outils de tests web, comme Selenium, WebDriver, et Watir, génèrent des rapports compatibles xUnit. Les outils Behaviour-Driven Development et de tests d'acceptation automatisés comme easyb, Fitnesse, Concordion sont aussi orientés xUnit. Dans les sections suivantes, nous ne faisons pas de distinction entre ces différents types de test, parce que, d'un point de vue configuration, ils sont traités de la même façon par Jenkins. Cependant, vous aurez certainement à faire la distinction dans vos tâches de build. Afin d'obtenir un compte-rendu plus rapide, vos tests devront être groupés dans des catégories bien définies, en commençant par les rapides tests unitaires, ensuite viendront les tests d'intégration, pour finir par exécuter les tests fonctionnels et web, plus longs.

Une discussion détaillée sur la façon d'automatiser vos tests est en dehors du sujet de ce livre, mais nous couvrons quelques techniques utiles pour Apache Maven et Ant dans Appendix A, Automatiser vos tests unitaires et d’intégration.