Agilité, Développement Java, Nouvelles technologies et plus…
  • rss
  • Accueil
  • Management
  • Programmation agile
  • Technologie
  • Linux
  • Evénement
  • App Android
  • Contact
  • A propos de l'auteur
  • English
  • Francais

Changer le splash screen d’Eclipse en quelques secondes

Fabian Piau | mercredi 7 décembre 2011 - 22:21
  • Imprimer
  • Twitter
  • LinkedIn
  • Facebook
  • Pocket

 English version available

Envie de frimer quand vous lancez Eclipse le matin ? Après tout, un peu de geekitude ne pourra pas faire de mal…

Téléchargez cette image (c’est la même que celle en dessous, mais au format BMP). N’importe quelle autre image au format bitmap fera l’affaire.

Remplacez le fichier « splash.bmp » contenu dans votre répertoire Eclipse : /eclipse/plugins/org.eclipse.platform_X.Y.Z.vXYZXYZXYXZYXZYXZ/ avec la nouvelle.
C’est tout ! N’oubliez de garder un backup de l’ancienne image.

Il est possible de personnaliser Eclipse davantage en consultant la page officielle.

Splash Screen Star Wars

PS : J’ai légèrement re-travaillé l’image, mais l’originale n’est pas de moi. En bon geek qui se respecte, vous aurez bien évidemment reconnu l’Etoile Noire de Dark Vador…


Licence Creative Commons
Splash screen Eclipse Star Wars de Fabian Piau est mis à disposition selon les termes de la licence Creative Commons Attribution – Partage dans les Mêmes Conditions 4.0 International.

Articles similaires

Firefox languageChanger la langue de Firefox Eclipse shortcutsLes raccourcis clavier sous Eclipse IT securityQuelques règles essentielles pour éviter de se faire pirater ses comptes
Commentaires
5 Commentaires »
Catégories
Technologie
Tags
eclipse, geek, splash screen
Flux rss des commentaires Flux rss des commentaires

EclEmma – Une bonne couverture pour l’hiver

Fabian Piau | mercredi 11 novembre 2009 - 22:23
  • Imprimer
  • Twitter
  • LinkedIn
  • Facebook
  • Pocket

 English version available

Remarque
Cet article est référencé sur le site officiel EclEmma dans la catégorie « Blog Entries About EclEmma ».

Améliorer la couverture du code avec Emma

Dans ce nouvel article, je vous présente le plug-in EclEmma (contraction d’Eclipse et d’Emma), Emma est un analyseur de code Java open-source qui détermine la couverture du code. EclEmma est bien évidemment son portage sous Eclipse.

Après l’avoir utilisé pendant quelques semaines, j’avoue que je me demande comment j’ai bien pu faire sans jusqu’à présent.


Installation du plug-in

Tout d’abord, l’installation. Sous Eclipse, Help -> Install New Software… -> Add site. L’adresse est http://update.eclemma.org/. Après installation, Eclipse doit être redémarré.


Utilisation

Habituellement, pour lancer vos tests unitaires, j’imagine que vous sélectionnez soit un package, soit une classe de tests ou soit un test seul, puis vous faites un clic droit, Run As -> JUnit Test

Pour lancer le(s) test(s) avec EclEmma afin de vérifier la couverture correspondante, il vous suffit de faire quasiment la même chose. Vous utilisez le nouveau menu « Coverage As » au lieu du « Run As ». Notez qu’il est possible d’utiliser un bouton dans l’IHM, mais je préfère le menu.

Nouveau bouton dans l'IHM

Nouveau bouton dans l'IHM


Présentation détaillée

Voici un exemple en images pour bien voir comment cela fonctionne. En même temps, nous allons parler du Test-driven Development.

Nous souhaitons implémenter la fonctionnalité suivante: la conversion d’un texte au format HTML. Rien de bien évolué donc, mais parfait pour une présentation d’EclEmma.

Nous allons créer un premier test pour tester la gestion des accents.

Un premier test

Un premier test

Le test ne compile même pas, nous allons implémenter juste le code qu’il faut pour qu’il compile.


Après création de la classe « ConvertToHtml » et de sa méthode « convert », le test est lançable.

Le code pour que le test compile

Le code pour que le test compile


Sans surprise, le test ne passe pas.

Le test est en échec

Le test est en échec


Implémentons la méthode « convert ».

Le code suffisant pour passer le test

Le code suffisant pour passer le test


Maintenant, le test réussit.

Le test passe

Le test passe


Le code n’est pas parfait, nous allons faire un peu de refactoring pour l’alléger et l’améliorer.

Refactoring du code

Refactoring du code

On vérifie que le test passe toujours.

A cet instant précis, vous pouvez vous poser la question suivante: bon d’accord, je sais que le code que j’ai écrit passe le test. Mais comment être sûr que je n’ai pas écrit trop de code, c’est-à-dire que j’ai écrit un code qui fait plus que ce que mon test lui demande…

La solution est dans EclEmma. On relance le test avec ce dernier.

Le code est couvert

Le code est couvert


Le code testé est surligné en vert. Dans mon cas, tout est complètement testé.

Le test est couvert

Le test est couvert


En plus, un tableau résumé s’affiche en bas. Le taux de couverture indiqué est de 100%.

Tableau résumé EclEmma

Tableau résumé EclEmma


Bon, il faut avouer que ce n’était pas trop dur avec un exemple aussi simple, mais gardez en tête l’utilité d’un tel logiciel sur une application contenant plusieurs centaines de milliers de lignes de code avec quelques milliers de tests unitaires.

Pour le tutoriel, je vais aller à l’encontre du principe TDD et modifier le code métier sans avoir préalablement écrit mon test.

Modification du code

Modification du code


Relançons le test avec EclEmma.

Le code n'est plus entièrement couvert

Le code n'est plus entièrement couvert

Le taux de couverture est « tombé » (si j’ose dire) à 95%. Ce que nous avons ajouté n’est clairement pas couvert par un test unitaire. La ligne est surlignée en rouge. EclEmma nous donne tout de suite le feedback qu’il nous faut.


Un coup d’oeil au tableau résumé et je sais exactement quel est le fichier concerné. Bon là, c’est moins drôle, je n’en ai que deux, ce n’était pas trop difficile à trouver.

Tableau résumé EclEmma

Tableau résumé EclEmma


Sans plus attendre, nous allons ajouter le test pour tester la non-conversion d’un texte qui ne doit effectivement pas être converti.

Ajout d'un second test

Ajout d'un second test

J’ai profité de la phase de réflexion sur l’écriture de mon test unitaire pour améliorer mon code métier en supprimant le préfixe en sortie, et en le mettant en constante.


Je relance EclEmma… Je retrouve un taux de couverture à 100%, tout est bien testé, et mon code fait exactement ce que je veux qu’il fasse (pas plus, pas moins).

Retour à une couverture optimale

Retour à une couverture optimale


Encore une fois, à des fins pédagogiques (bien sûr), nous allons modifier le code métier sans avoir modifié les tests. Supposons que maintenant on utilise un suffixe de non-conversion. On relance EclEmma. Oh, les belles couleurs !

Une ligne à moitié couverte

Une ligne à moitié couverte


Une ligne est surlignée en jaune, elle est partiellement testée. Arrangeons le code en 2 lignes pour y voir plus clair.

Explications sur une ligne à moitié couverte

Explications sur une ligne à moitié couverte

Tout s’explique maintenant, on est passé dans la première partie du ET mais pas dans la seconde, car la première partie n’a pas été vérifiée.


Vous l’aurez compris, EclEmma colorise les lignes de la façon suivante:

  • Vert: la ligne est testée, un test (au moins) la vérifie;
  • Rouge: la ligne n’est pas testée, aucun test ne la vérifie, il faut donc écrire un test;
  • Jaune: la ligne est partiellement testée, elle contient du code testé et du code non testé. Pour voir exactement ce qui est testé, « cassez » la ligne en plusieurs morceaux comme j’ai fait précédemment.


EclEmma fournit deux pourcentages de couverture, celui sur le code de l’application par les tests (c’est celui-ci qu’il faudra le plus surveiller, c’est le plus important), mais aussi le taux de couverture sur les tests eux-mêmes. Ce dernier peut-être utile, car il permet de faire un bon nettoyage dans les tests en montrant les lignes qui ne sont jamais utilisées.


Enfin, si vous regardez les propriétés du projet, vous pouvez avoir un résumé de la couverture par type d’élément Java. Ces chiffres sont utiles pour le développeur, le chef de projet, et peuvent faire partie d’un livrable client.

Second tableau résumé

Second tableau résumé


La configuration par défaut d’EclEmma est très suffisante. Vous pouvez paramétrer quelques options comme la personnalisation des 3 couleurs ou bien ajouter le taux de couverture dans le package explorer (comme ci-dessous).

Ajout des décorateurs de pourcentage

Ajout des décorateurs de pourcentage


Conclusion

Selon moi, EclEmma (Emma plus généralement pour ceux qui ne travaillent pas sous Eclipse) fait partie de la boite à outil indispensable à tout développeur JAVA travaillant quotidiennement avec des tests unitaires.

Il vous aidera facilement à améliorer votre taux de couverture. Autrement dit, et pour être plus réaliste, il vous montrera efficacement que vous développez plus qu’il n’en faut pour passer vos tests. Ainsi, peut-être qu’un jour, vous réussirez à atteindre un taux de couverture proche du mythique 100% (mais là… rien n’est moins sûr, car tout n’est pas testable comme on le voudrait… c’est une autre histoire… et surtout un sujet différent).

Je vous souhaite un bon test de ce logiciel sur vos tests !

Articles similaires

Java 11Une migration Java 11 réussie devoxxDevoxx UK 2018 – Jour 2 Java User GroupJava User Group – JUG microservices-legoArchitecture Microservices – Les bonnes pratiques
Commentaires
2 Commentaires »
Catégories
Programmation agile
Tags
couverture de code, eclemma, eclipse, emma, java, plugin, test unitaire
Flux rss des commentaires Flux rss des commentaires
Page 1 sur 212
Télécharger l'app CarmaBlog

Flux RSS

  • Flux RSS RSS - Articles
  • Flux RSS RSS - Commentaires

Articles les plus vus

  • Changer la langue de Firefox - 115 578 vues
  • Réaliser un sondage en ligne avec Google Forms / Drive / Docs - 63 166 vues
  • FAQ – Sondage en ligne avec Google Forms / Drive / Docs - 52 403 vues
  • Personnaliser Gnome 3 (Shell) - 30 017 vues
  • La signification d’URL, URI et URN - 17 251 vues
  • Java EE & CDI vs. Spring - 15 442 vues
  • Open Street Map, une meilleure carte que Google Maps? - 14 648 vues
  • Comparaison NoSQL: Couchbase et MongoDB - 14 082 vues
  • Firefox Nightly, Aurora, Beta, Desktop, Mobile, ESR & Co. - 13 087 vues
  • API, REST, JSON, XML, HTTP, URI… Vous parlez quelle langue en fait? - 12 718 vues

Commentaires récents

  • Pauline sur FAQ – Sondage en ligne avec Google Forms / Drive / DocsMerci Fabian, mais le but étant que nos clients pu…
  • Fabian Piau sur FAQ – Sondage en ligne avec Google Forms / Drive / DocsProbablement mais ces options sont en général paya…
  • Pauline sur FAQ – Sondage en ligne avec Google Forms / Drive / DocsBonjour Fabian, Merci de votre retour, oui j'avais…
  • Fabian Piau sur FAQ – Sondage en ligne avec Google Forms / Drive / DocsBonjour Pauline, ce n'est pas possible de créer un…
  • Pauline sur FAQ – Sondage en ligne avec Google Forms / Drive / DocsBonjour, Je suis en train de créer un Google Forms…

Articles récents

  • Comment écrire un article de blog? En tout cas à ma façon! - Il y a 3 mois et 2 semaines
  • Attaques de robots: vous n’êtes pas seul… - Il y a 1 an et 11 mois
  • Flagger – Monitorer vos déploiements Canary avec Grafana - Il y a 2 ans et 8 mois
  • Flagger – Déploiements Canary sur Kubernetes - Il y a 2 ans et 10 mois
  • Flagger – Premiers pas avec Istio et Kubernetes - Il y a 2 ans et 10 mois
  • CoderDojo Expedia à Londres - Il y a 3 ans et 7 mois
  • Etre bénévole à Devoxx4Kids - Il y a 3 ans et 10 mois
  • Une migration Java 11 réussie - Il y a 4 ans et 2 mois
  • Conseils pour sécuriser votre site WordPress - Il y a 4 ans et 5 mois
  • Devoxx UK 2018 – Jour 2 - Il y a 4 ans et 9 mois
  • Devoxx UK 2018 – Jour 1 - Il y a 4 ans et 9 mois
  • Wise, Revolut et Monzo, une petite révolution dans le monde des expatriés et voyageurs - Il y a 5 ans et 1 mois
  • Autocomplétion pour Git - Il y a 5 ans et 10 mois
  • Swagger, la documentation API automatisée - Il y a 6 ans et 2 semaines
  • Architecture Microservices – Les bonnes pratiques - Il y a 6 ans et 5 mois
Offre moi un café

Langue

  • Français
  • English

Suivez-moi!

Suivez-moi sur Linkedin
Suivez-moi sur Twitter
Suivez-moi sur Stackoverflow
Suivez-moi sur Github
Suivez-moi sur Rss
Link to my Contact

Abonnement email

Saisissez votre adresse email pour être informé des nouveaux articles.

Étiquettes

.net agile agilité android bash blog bonnes pratiques cache cloud conférence css devoxx docker développeur eclipse extreme programming firefox flagger google helm hibernate informatique intégration continue istio java jug kubernetes londres mobilité informatique métier outil panorama partage performance plugin programmeur script société spring sécurité tdd test ubuntu windows wordpress

Liens

  • Blog Ippon Technologies
  • Blog Publicis Sapient
  • Blog Zenika
  • Classpert
  • CommitStrip
  • Coursera
  • Le Touilleur Express
  • Les Cast Codeurs Podcast
  • OCTO talks !
  • The Twelve-Factor App

Catégories

  • Evénement (15)
  • Linux (3)
  • Management (8)
  • Programmation agile (29)
  • Technologie (45)

Archives

  • décembre 2022 (1)
  • avril 2021 (1)
  • juin 2020 (1)
  • mai 2020 (2)
  • juillet 2019 (1)
  • mai 2019 (1)
  • décembre 2018 (1)
  • octobre 2018 (1)
  • juin 2018 (1)
  • mai 2018 (1)
  • janvier 2018 (1)
  • mai 2017 (1)
  • mars 2017 (1)
  • octobre 2016 (1)
  • avril 2016 (2)
  • mars 2016 (1)
  • novembre 2015 (1)
  • mai 2015 (1)
  • février 2015 (1)
  • décembre 2014 (1)
  • novembre 2014 (1)
  • septembre 2014 (2)
  • août 2014 (1)
  • juillet 2014 (2)
  • juin 2014 (1)
  • avril 2014 (1)
  • mars 2014 (1)
  • février 2014 (2)
  • janvier 2014 (1)
  • décembre 2013 (1)
  • novembre 2013 (1)
  • octobre 2013 (3)
  • septembre 2013 (5)
  • juillet 2013 (1)
  • juin 2013 (1)
  • mai 2013 (1)
  • avril 2013 (1)
  • mars 2013 (2)
  • février 2013 (1)
  • janvier 2013 (2)
  • décembre 2012 (2)
  • octobre 2012 (1)
  • septembre 2012 (1)
  • juillet 2012 (1)
  • mai 2012 (1)
  • avril 2012 (1)
  • mars 2012 (1)
  • février 2012 (1)
  • janvier 2012 (2)
  • décembre 2011 (1)
  • novembre 2011 (2)
  • octobre 2011 (2)
  • septembre 2011 (1)
  • juillet 2011 (1)
  • juin 2011 (2)
  • avril 2011 (1)
  • mars 2011 (1)
  • février 2011 (1)
  • janvier 2011 (2)
  • novembre 2010 (2)
  • septembre 2010 (1)
  • août 2010 (1)
  • juillet 2010 (1)
  • juin 2010 (1)
  • mai 2010 (1)
  • avril 2010 (1)
  • mars 2010 (1)
  • février 2010 (1)
  • décembre 2009 (1)
  • novembre 2009 (1)
  • octobre 2009 (2)
  • septembre 2009 (2)
  • août 2009 (3)
  • juillet 2009 (1)
  • juin 2009 (2)
Suivez-moi sur Twitter
Suivez-moi sur Linkedin
Suivez-moi sur Stackoverflow
Suivez-moi sur Rss
Link to my Contact
Suivez-moi sur Github
 
Fabian Piau | © 2009 - 2023
Tous droits réservés | Haut ↑