![Page 1: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/1.jpg)
Tests et intégration continue
avec Eclipse
Julien Nauroy
Ingénieur Confirmé CDD INRIA – équipe TAO
Laboratoire de Recherche en Informatique
Université Paris Sud
23/05/2013
![Page 2: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/2.jpg)
Quelques mots sur cette présentation
Contenu à tiers-chemin entre :
La présentation générale
Le retour d’expérience
Le tutoriel (pour référence)
Plusieurs ambitions
Vous faire découvrir les tests et l’IC dans Eclipse
Vous encourager à les utiliser
Vous fournir un support réutilisable
Vous proposer un retour d’expérience
2 / 56 Tests et intégration continue avec Eclipse
![Page 3: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/3.jpg)
Journée LoOPS de décembre 2012
Tests de programme par Frédéric Voisin
Jenkins (intégration continue) par Charles Loomis
De belles promesses !
Mais est-ce réellement utile ?
Est-ce « rentable » quand on développe seul ?
Quelle intégration dans Eclipse ?
3 / 56 Tests et intégration continue avec Eclipse
![Page 4: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/4.jpg)
Le projet : un Framework/CMS web PHP
~ 7500 lignes, dont 4000 lignes « de code »
Langage interprété
Erreurs de syntaxe détectées à l’exécution du code
Utilisé pour produire des sites web
Producteur et utilisateur du Framework
Outil de développement : Eclipse
Originellement, Netbeans
5 / 56 Tests et intégration continue avec Eclipse
![Page 5: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/5.jpg)
Plan
1. Mise en place du projet PHP dans Eclipse
2. Ecriture des tests
3. Automatisation des tests
4. Mise en place de l’intégration continue
5. Présentation de l’atelier « tests + IC »
7 / 56 Tests et intégration continue avec Eclipse
![Page 6: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/6.jpg)
1. Mise en place du projet
![Page 7: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/7.jpg)
Etapes de mise en place d’Eclipse
1. Installation de PDT pour Eclipse
2. Création du projet dans Eclipse
3. Mise en place du débogueur
4. Installation des modules PEAR
5. Installation de Makegood pour tests unitaires
6. Installation des autres outils (checkstyle…)
9 / 56 Tests et intégration continue avec Eclipse
![Page 8: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/8.jpg)
Les outils Eclipse pour PHP : PDT
10 / 56 Tests et intégration continue avec Eclipse
![Page 9: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/9.jpg)
Création d’un projet PHP
11 / 56 Tests et intégration continue avec Eclipse
![Page 10: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/10.jpg)
Réglages du débogueur
12 / 56 Tests et intégration continue avec Eclipse
![Page 11: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/11.jpg)
Débogueur en fonctionnement
13 / 56 Tests et intégration continue avec Eclipse
![Page 12: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/12.jpg)
Installation de PEAR et PHPUnit
PHP Extension and Application Repository
Equivalent d’un gestionnaire de paquets PHP
Plusieurs incantations obligatoires
14 / 56
![Page 13: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/13.jpg)
Ajout des libs PEAR dans Eclipse
15 / 56 Tests et intégration continue avec Eclipse
![Page 14: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/14.jpg)
Installation de Makegood pour PHPUnit
16 / 56 Tests et intégration continue avec Eclipse
![Page 15: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/15.jpg)
Configuration de Makegood
17 / 56 Tests et intégration continue avec Eclipse
![Page 16: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/16.jpg)
Installation d’autres outils
18 / 56 Tests et intégration continue avec Eclipse
![Page 17: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/17.jpg)
Configuration des outils
19 / 56 Tests et intégration continue avec Eclipse
![Page 18: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/18.jpg)
2. Ecriture des tests
![Page 19: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/19.jpg)
Motivation
Qu’est-ce qu’un test ?
« Procédure de vérification partielle d’un système »
De multiples méthodologies, de multiples objectifs
Tests unitaires, d’intégration, de performance, de non
régression, de robustesse, de vulnérabilité…
Ici je ne parlerai que des tests unitaires
Plus d’infos => voir présentation de Frédéric Voisin
Pourquoi tester ?
Besoin de s’assurer de la qualité du programme
L’impact d’une faille peut être important (web)
Utilisateurs potentiellement nombreux et anonymes
22 / 56 Tests et intégration continue avec Eclipse
![Page 20: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/20.jpg)
Cas d’un Framework web
Tester un Framework web : pas toujours facile !
Partie « Contrôleur » orientée vers l’extérieur
Comment la tester ?
Selon le Framework, la majorité du code peut être
dans le « contrôleur »
pattern ActiveRecord
On doit tester la partie serveur (PHP + SQL) mais
également la partie client (HTML + Javascript)
De nombreuses fonctionnalités => de nombreux
tests à écrire
23 / 56 Tests et intégration continue avec Eclipse
![Page 21: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/21.jpg)
Du code !
Un exemple de test unitaire
24 / 56 Tests et intégration continue avec Eclipse
![Page 22: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/22.jpg)
Faire des tests unitaires, c’est facile !
Principe : chaque « unité » doit être testée
Classes, méthodes…
un standard de facto : xUnit (ici PHPUnit)
Très grande facilité de prise en main
Beaucoup de tutoriels disponibles
xUnit fonctionne par assertions
assertTrue : l’expression est vraie
assertFalse : devinez !
assertEquals : deux expressions sont égales
assertCount : une liste a la taille voulue
assertContains : un élément est contenu dans la liste
25 / 56 Tests et intégration continue avec Eclipse
![Page 23: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/23.jpg)
Bien tester, c’est difficile !
Il faut penser à tout
Ajout d’un utilisateur
Le nom de l’utilisateur est valide (nombre de caractères)
Le nom de l’utilisateur n’est pas déjà pris
L’email est valide
L’email n’est pas déjà pris
Pas de syntaxe SQL dans le nom (Injection SQL)
Pas de symboles HTML dans un champ (faille XSS)
26 / 56 Tests et intégration continue avec Eclipse
![Page 24: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/24.jpg)
Bien tester, c’est difficile !
Il n’y a pas que les tests unitaires
Tout l’environnement devrait être testé (base
de données, affichage dans le navigateur,
intégration avec serveur web…)
Environnement de dev. à mettre en place
Cela prend beaucoup de temps !
27 / 56 Tests et intégration continue avec Eclipse
![Page 25: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/25.jpg)
Résultat
~1000 lignes de code pour les tests unitaires
Plusieurs jours de développement
50 fonctions de test, 567 assertions
28 / 56
![Page 26: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/26.jpg)
Malheureusement…
Couplage tests + debugger = Code coverage
… Mais pas avec Eclipse + PDT
29 / 56
![Page 27: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/27.jpg)
Bilan
Tests unitaires : un peu rébarbatif mais pratique
Force à penser aux cas d’erreur
Permet la non-régression
Plusieurs bugs trouvés en écrivant les tests
Grande aide lors du remaniement du programme
Particulièrement pratique pour du code interprété
Utile et rentable même quand on développe seul
« Test Continu » : insupportable par défaut !
Couverture de code : un bel atout
Aide à cibler les tests
Ne fonctionne pas dans Eclipse + PDT
30 / 56 Tests et intégration continue avec Eclipse
![Page 28: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/28.jpg)
3. Automatisation
![Page 29: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/29.jpg)
Automatiser, kesako ?
Permet d’exécuter des tâches prédéfinies
Equivalent d’un fichier « make »
Actions type « make all » et « make test »
Aide à la mise en place de l’intégration continue
Ici, Phing, équivalent PHP de Ant
Installé via PEAR
32 / 56 Tests et intégration continue avec Eclipse
![Page 30: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/30.jpg)
Automatiser les outils, pas si facile !
Phing propose de configurer :
Tests unitaires
Couverture de code
Comptage des lignes de code
Détecteur de copier/coller
Calcul de complexité du code
…
Du moment que les outils sont présents !
PHPUnit, Xdebug, PHPLoc, PHPCPD, PHPMD, pear
etc…
33 / 56 Tests et intégration continue avec Eclipse
![Page 31: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/31.jpg)
build.xml pour Phing
34 / 56 Tests et intégration continue avec Eclipse
![Page 32: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/32.jpg)
Exécution des tests
Tests et intégration continue avec Eclipse 35 / 56
![Page 33: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/33.jpg)
4. Intégration continue
![Page 34: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/34.jpg)
Qu’est-ce que l’intégration continue ?
« L'intégration continue est un ensemble de
pratiques utilisées en génie logiciel consistant à
vérifier à chaque modification de code
source que le résultat des modifications ne
produit pas de régression dans l'application
développée. » Wikipedia
37 / 56 Tests et intégration continue avec Eclipse
![Page 35: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/35.jpg)
L’outil d’IC Hudson, pour Stratuslab
38 / 56 Tests et intégration continue avec Eclipse
![Page 36: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/36.jpg)
Comment ça marche ?
Un gestionnaire de version héberge le programme
CVS, SVN, Git, Hg…
L’outil de gestion de version suit les changements
Chaque jour, chaque minute, selon un déclencheur…
A chaque nouvelle version, des actions sont
déclenchées
Compilation, tests, génération de documentation…
Exécution possible sur des « esclaves »
Recommandé !
39 / 56 Tests et intégration continue avec Eclipse
![Page 37: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/37.jpg)
Quels avantages de l’IC ?
Les tests sont automatisés
Un commit SVN => une série de tests
Historique des tests
Eventuellement des alertes automatiques si échec
Le portail peut servir à d’autres fins
Publication d’un « nightly build »
Génération de documentation
Autres tests : compatibilité, performance…
40 / 56 Tests et intégration continue avec Eclipse
![Page 38: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/38.jpg)
Installer Jenkins
sudo apt-get install jenkins
OU
Télécharger fichier JAR
Java –jar jenkins.jar
Cliquer « install as a service »
41 / 56 Tests et intégration continue avec Eclipse
![Page 39: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/39.jpg)
Configurer l’intégration continue
Configurer une (des) machines(s) + services
Fastidieux
1. Configuration de Jenkins
Installation d’une série de plugins
Phing, checkstyle, PMD, …
2. Installation des esclaves
3. Configuration des esclaves
Apache, PHP, mySQL, PEAR, Phing, …
4. Lien entre serveur Jenkins et esclaves
42 / 56 Tests et intégration continue avec Eclipse
![Page 40: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/40.jpg)
Création d’un nouveau projet
Choix du nom du projet
Réglage des paramètres SVN
Configuration du « build »
exécution de Phing
Configuration des étapes post-build
Graphe tests unitaires
Graphe couverture de code
etc
43 / 56 Tests et intégration continue avec Eclipse
![Page 41: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/41.jpg)
L’interface une fois le projet configuré
44 / 56 Tests et intégration continue avec Eclipse
![Page 42: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/42.jpg)
Un peu plus tard… vue du projet
45 / 56
![Page 43: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/43.jpg)
Configurer l’outil d’Intégration Continue
Configurer l’outil, c’est (relativement) facile
Encore faut-il en maîtriser les arcanes !
MAIS l’outil ne fait que tracer des graphes
Il faut générer ces données, automatiquement
Besoin de la phase d’automatisation
46 / 56 Tests et intégration continue avec Eclipse
![Page 44: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/44.jpg)
Au final, ça donne quoi ?
47 / 56 Tests et intégration continue avec Eclipse
![Page 45: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/45.jpg)
Au final, ça donne quoi ?
48 / 56 Tests et intégration continue avec Eclipse
![Page 46: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/46.jpg)
Jenkins dans Eclipse
Tests et intégration continue avec Eclipse 49 / 56
![Page 47: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/47.jpg)
Jenkins dans Eclipse
Tests et intégration continue avec Eclipse 50 / 56
![Page 48: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/48.jpg)
Jenkins dans Eclipse
Tests et intégration continue avec Eclipse 51 / 54
![Page 49: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/49.jpg)
Bilan
Jenkins est complet et peut être complexe
Mais reste simple pour un petit projet
Intégration continue pas vitale MAIS :
Pratique réaliser des actions automatiquement
build, test, génération de doc…
Utile pour visualiser les métriques et leur historique
Encourage à améliorer la qualité du code
Même pour cette présentation !
Intérêt de l’intégration de Jenkins dans Eclipse ?
Visualisations limitées
52 / 56 Tests et intégration continue avec Eclipse
![Page 50: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/50.jpg)
Les limites
Adaptation au projet « Grid Observatory » ?
• Acquisition de fichiers à distance
• Traitement des données
• Mise en ligne des données traitées
Test difficile, beaucoup d’effets de bord
Le traitement des données est plus facile à tester
Mais il faut imaginer tous les cas
53 / 56 Tests et intégration continue avec Eclipse
![Page 51: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/51.jpg)
5. Présentation de l’atelier
Tests + Intégration continue
![Page 52: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/52.jpg)
Qu’allons-nous voir ?
Création d’un projet simple en Java
Rédaction de tests avec JUnit
Couverture de code (pour de vrai)
Intégration continue
Le tout en 2h !
55 / 56 Tests et intégration continue avec Eclipse
![Page 53: Tests et intégration continue avec Eclipse · Phing, checkstyle, PMD, … 2. Installation des esclaves 3. Configuration des esclaves Apache, PHP, mySQL, PEAR, Phing, … 4. Lien](https://reader033.vdocuments.pub/reader033/viewer/2022060314/5f0b957b7e708231d4313ac3/html5/thumbnails/53.jpg)
Prérequis
Installer Java 1.6 – 1.7
Installer Eclipse Juno 4.2
Installer un client SVN
Télécharger Jenkins (http://jenkins-ci.org/)
Si possible, installer Ant
surtout pour les utilisateurs de Windows
56 / 56 Tests et intégration continue avec Eclipse