¿Cómo identificar qué líneas de código participaron en una ejecución específica de un programa Java?

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

Pregunta

Suponga que tengo un programa Java dentro de un IDE (Eclipse en este caso). Supongamos ahora que ejecuto el programa y en algún momento lo finalizo o termina naturalmente.

¿Hay alguna forma conveniente de determinar qué líneas se ejecutaron al menos una vez y cuáles no (por ejemplo, manejo de excepciones o condiciones que no se alcanzaron?)

Una forma manual de recopilar esta información sería seguir constantemente la depuración y mantener un conjunto de líneas por las que hemos pasado al menos una vez. Sin embargo, ¿hay alguna herramienta o perfilador que ya lo haga?

Editar: solo para aclarar: necesito poder acceder a esta información mediante programación y no necesariamente desde una prueba JUnit.

¿Fue útil?

Solución

eclemma sería un buen comienzo: una herramienta de cobertura de código permitiría una sesión de cobertura para registrar la información estás buscando.

 texto alternativo
(fuente: eclemma.org )

Otros consejos

Lo que estás preguntando se llama "cobertura". Hay varias herramientas que miden eso, algunas de las cuales se integran en Eclipse. He usado jcoverage y funciona (lo creo tiene un período de prueba gratuito, después del cual tendrías que comprarlo). No lo he usado, pero también puedes probar Coverlipse .

Si entiendo la pregunta correctamente, quiere más que los datos estándar de stacktrace pero no desea instrumentar manualmente su código con, por ejemplo, declaraciones de depuración log4j.

Lo único que se me ocurre es agregar algún tipo de rastreo de bytecode. Consulte Instrumentación del código de bytes de Java . El artículo hace referencia a Cobertura que no he usado pero suena como lo que necesita ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top