Objectifs du chapitre :

  • Comprendre l'importance de l'intégration continue (CI) et de Jenkins dans le processus de développement.
  • Apprendre à configurer un job Jenkins pour exécuter des tests JUnit.
  • Découvrir comment analyser les résultats des tests JUnit dans Jenkins.
  • Explorer les bonnes pratiques pour l'intégration de tests dans un pipeline CI/CD.

16.1 Introduction à Jenkins et l'intégration continue

Jenkins est un serveur d'intégration continue (CI) open source écrit en Java. Il aide à automatiser les parties non humaines du processus de développement logiciel, avec une intégration continue et une livraison continue (CD). Jenkins permet aux développeurs d'intégrer leurs modifications de code plus fréquemment et de détecter les problèmes rapidement en automatisant les tests.

Importance de l'intégration continue :

  • Détection rapide des bugs : Les tests automatisés détectent rapidement les régressions et les erreurs dans le code.
  • Feedback rapide : Les développeurs reçoivent un retour instantané sur l'état de leur code.
  • Amélioration de la qualité du code : Les tests fréquents et automatisés garantissent une qualité constante du code.
  • Collaboration facilitée : Jenkins facilite la collaboration entre les équipes en centralisant les builds et les tests.

16.2 Configuration d'un job Jenkins pour exécuter des tests JUnit

Étapes pour configurer un job Jenkins :

  1. Installation de Jenkins :

    • Téléchargez et installez Jenkins depuis le site officiel : jenkins.io
    • Suivez les instructions d'installation pour votre système d'exploitation.
  2. Configuration de Jenkins :

    • Accédez à l'interface web de Jenkins : http://localhost:8080
    • Installez les plugins nécessaires :
      • JUnit Plugin : Pour afficher les résultats des tests JUnit.
      • Maven Integration Plugin (si vous utilisez Maven) : Pour exécuter des builds Maven.
  3. Création d'un nouveau job :

    • Cliquez sur New Item.
    • Entrez un nom pour le job et sélectionnez Freestyle project.
    • Cliquez sur OK.
  4. Configuration du job Jenkins :

    • Source Code Management (SCM) :

      • Configurez le SCM pour pointer vers votre dépôt de code source (Git, SVN, etc.).
      • Exemple pour Git : Entrez l'URL du dépôt Git et configurez les informations d'identification si nécessaire.
    • Build Triggers :

      • Configurez les déclencheurs de build pour automatiser les builds (par exemple, Poll SCM ou GitHub hook trigger for GITScm polling).
    • Build Environment :

      • Configurez l'environnement de build si nécessaire (par exemple, Provide Node & npm bin/ folder to PATH pour les projets Node.js).
    • Build :

      • Ajoutez une étape de build pour exécuter les tests JUnit.
      • Si vous utilisez Maven, ajoutez une étape Invoke top-level Maven targets :
        clean test
      • Si vous utilisez Gradle, ajoutez une étape Invoke Gradle script :
        gradle clean test
    • Post-build Actions :

      • Ajoutez l'action Publish JUnit test result report.
      • Configurez le chemin vers les fichiers de résultats des tests JUnit (par exemple, **/target/surefire-reports/*.xml pour Maven ou **/build/test-results/test/*.xml pour Gradle).
  5. Sauvegarder et exécuter le job :

    • Cliquez sur Save.
    • Cliquez sur Build Now pour exécuter le job.

16.3 Analyse des résultats des tests JUnit dans Jenkins

Après l'exécution du job Jenkins, vous pouvez analyser les résultats des tests JUnit :

  1. Accéder aux résultats des tests :

    • Cliquez sur le job dans le tableau de bord Jenkins.
    • Sélectionnez le build spécifique dans l'historique des builds.
    • Cliquez sur Test Result pour voir les détails des résultats des tests.
  2. Interprétation des résultats :

    • Nombre de tests réussis/échoués/ignorés : Jenkins affiche un résumé des tests exécutés, avec le nombre de tests réussis, échoués et ignorés.
    • Détails des échecs : Cliquez sur les tests échoués pour voir les messages d'erreur et les traces de pile, ce qui aide à diagnostiquer les problèmes.

16.4 Bonnes pratiques pour l'intégration de tests dans un pipeline CI/CD

  1. Automatiser les builds et les tests :

    • Configurez des déclencheurs automatiques pour les builds et les tests (par exemple, à chaque commit).
  2. Maintenir les tests rapides :

    • Les tests doivent s'exécuter rapidement pour fournir un feedback rapide aux développeurs.
  3. Isoler les tests :

    • Assurez-vous que les tests sont indépendants et ne dépendent pas des environnements ou des données partagés.
  4. Surveiller les résultats des tests :

    • Analysez régulièrement les résultats des tests et corrigez rapidement les échecs.
  5. Évoluer vers des pipelines CD :

    • Intégrez des étapes de déploiement continu pour automatiser la livraison du code en production.

Résumé du chapitre :

  • L'intégration continue (CI) avec Jenkins permet d'automatiser les builds et les tests, améliorant ainsi la qualité du code et la collaboration entre les équipes.
  • Configurer un job Jenkins pour exécuter des tests JUnit est simple et inclut l'installation de plugins, la configuration du SCM, et l'ajout d'étapes de build et de post-build.
  • Jenkins fournit des rapports détaillés sur les résultats des tests JUnit, facilitant l'analyse et la correction des problèmes.
  • Suivre les bonnes pratiques pour l'intégration de tests dans un pipeline CI/CD garantit des tests rapides, isolés et fiables.
Modifié le: jeudi 18 juillet 2024, 09:10