Comment identifier quelles lignes de code ont participé à une exécution spécifique d'un programme Java?

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

Question

Supposons que j'ai un programme Java dans un IDE (Eclipse dans ce cas). Supposons maintenant que j'exécute le programme et que je le termine ou qu'il se termine naturellement.

Existe-t-il un moyen pratique de déterminer quelles lignes ont été exécutées au moins une fois et lesquelles n'ont pas été exécutées (par exemple, la gestion des exceptions ou des conditions non atteintes?)

Un moyen manuel de collecter ces informations serait d’intervenir constamment dans le débogage et de conserver un ensemble de lignes que nous avons passées au moins une fois. Cependant, existe-t-il un outil ou un profileur qui le fait déjà?

Édition: Juste pour clarifier: je dois pouvoir accéder à cette information par programmation et pas nécessairement à partir d'un test JUnit.

Était-ce utile?

La solution

eclemma serait un bon début: un outil de couverture de code permettrait à une session de couverture d'enregistrer les informations. vous recherchez.

 alt text
(source: eclemma.org )

Autres conseils

Ce que vous demandez est appelé "couverture". Plusieurs outils permettent de mesurer cela, dont certains s’intègrent à Eclipse. J'ai utilisé jcoverage et cela fonctionne (je le crois a une période d’essai gratuite, après laquelle vous devez l’acheter). Je ne l'ai pas utilisé, mais vous pouvez également essayer Coverlipse .

Si je comprends bien la question, vous voulez plus que les données de pile standard mais vous ne souhaitez pas instrumenter manuellement votre code avec, par exemple, les instructions de débogage log4j.

La seule chose à laquelle je peux penser est d’ajouter une sorte de traçage de code-octet. Reportez-vous à la Instrumentation du code de code Java . Cet article fait référence à Cobertura que je n'ai pas utilisé mais qui ressemble à ce dont vous avez besoin ...

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