Y at-il un moyen automatisé de faire en sorte que toutes les parties de code est testé unitairement?

StackOverflow https://stackoverflow.com/questions/2542574

  •  23-09-2019
  •  | 
  •  

Question

Je l'ai écrit tests JUnit pour ma classe, et je voudrais qu'il me dire s'il y a une partie de mon code qui n'est pas testé unitairement. Est-il possible de le faire?

Était-ce utile?

La solution

Si vous utilisez Eclipse, vous pouvez aussi essayer EclEmma qui vous montre les lignes de la source étaient couvertes par votre test. Cela est parfois plus utile que l'exécution d'un outil de couverture comme Cobertura parce que vous pouvez exécuter un seul test à l'intérieur Eclipse et obtenir une rétroaction immédiate sur ce qui a été couvert.

Autres conseils

Oui, les outils de couverture comme cobertura ou emma .

Ils créent rapports qui montrent chaque ligne du code source et si elle était exécuté ou non (et des statistiques agrégées ainsi).

Bien sûr, ils ne peuvent vous montrer si le code a été exécuté. Il n'y a pas moyen de savoir si le test unitaire contenait des affirmations pour confirmer que le résultat était correct.

Vous avez besoin des outils de couverture de code. Voir ici (http://java-source.net/open-source/code-coverage ) pour certains

Si vous regardez le premier, je pense qu'il fait ce que vous avez besoin

Cobertura est un outil Java gratuit qui calcule le pourcentage d'un code accessible par des tests. Il peut être utilisé pour identifier quelles parties de votre programme Java manquent de couverture de test. Il est basé sur jcoverage. Caractéristiques de Cobertura:

  • peut être exécuté à partir de fourmis ou de la ligne de commande.

Votre titre et votre question diffèrent réelle. Les outils mentionnés dans les autres réponses peuvent vous dire, quelle partie du code étaient pas testé (= pas du tout exécuté). Faire « faire en sorte que toutes les parties de code est l'unité testée » est une autre chose. Les outils de couverture peuvent vous dire si toutes les lignes / instructions ont été exécutées, mais ils ne garantissent pas que tout est testé fonctionnellement (toutes les constellations de données, etc., tous les chemins d'exécution). Cela nécessite une certaine puissance du cerveau. À mon avis, la couverture de test donne souvent un mauvais sentiment de sécurité. Par exemple. test getters triviales augmente la couverture beaucoup, mais est plutôt inutile.

Si vous utilisez IntelliJ puis il y a un bouton intitulé

"Exécuter avec une couverture"

Exécuter avec couverture

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top