2008-11-14 16 views
5

Supongamos que tengo un programa Java dentro de un IDE (en este caso, Eclipse). Supongamos ahora que ejecuto el programa y en algún momento lo termino o termina de forma natural.¿Cómo identificar qué líneas de código participaron en una ejecución específica de un programa Java?

¿Hay un cómodo manera para determinar qué líneas ejecutadas al menos una vez y cuáles no (por ejemplo, que no eran alcanzaron el manejo o condiciones de excepción?)

Una forma manual para recopilar esta información ser constantemente un paso con la depuración y mantener un conjunto de líneas donde hemos pasado al menos una vez. Sin embargo, ¿hay alguna herramienta o generador de perfiles que ya lo haga?

Editar: Sólo una aclaración: Tengo que ser capaz de acceder a esta información mediante programación y no necesariamente de una prueba unitaria.

Respuesta

3

Lo que estás preguntando por que se llama "cobertura". Hay varias herramientas que miden eso, algunas de las cuales se integran en Eclipse. He usado jcoverage y funciona (creo que 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.

+0

Does not cobertura significan la unión del código que se ve afectado por todas las pruebas unitarias en el sistema? Estoy buscando el resultado de una determinada ejecución, no necesariamente a través de JUnit. Pero lo comprobaré. Gracias ! – Uri

+0

El término cobertura generalmente se usa con pruebas pero es lo que está buscando. (La cobertura del código para una determinada ejecución del programa) – Touko

2

Si entiendo bien la pregunta que usted quiere más de los datos StackTrace estándar, pero que no quieren instrumento manualmente su código con, por ejemplo, las declaraciones de depuración log4j.

Lo único que puedo pensar es añadir algún tipo de rastreo de código de bytes. Consulte Instrumenting Java bytecode. Las referencias de artículos Cobertura que no he utilizado, pero suena como lo que necesita ...

Cuestiones relacionadas