2012-08-06 48 views
21

¿Cómo puedo perfilar una prueba JUnit, preferentemente con soporte integrado Eclipse? Intento hacerlo usando VisualVM pero aparentemente no se puede hacer.Perfil JUnit en Eclipse Indigo usando VisualVM

estoy usando Windows 7 x64, Eclipse Indigo, JDK 1.6, jre-J9 y JUnit 3 (I podría utilizar v.4)

+0

¿Cuál es su problema al usar VisualVM? Lo he usado antes, y funcionó. – Axel

+0

@Axel Puedo usarlo para ejecutar programas Java (con el método principal) pero cuando trato de perfilar un JUnit (seleccionando VisualVM como iniciador en lugar de Eclipse JUnit Launcher) obtengo un cuadro de mensaje de error NullPointerException y la prueba se ejecuta en Eclipse . – rnunes

+0

@Axel ¿cómo hiciste esto? –

Respuesta

30

Usted puede utilizar jvisualvm (%JAVA_HOME%/bin/jvisualvm.exe), pero usarlo con JUnit , necesita cambiar ligeramente la configuración de ejecución.

  1. Ejecutar las pruebas JUnit una vez, para crear la configuración de ejecución
  2. editar la configuración de ejecución (Run->Run Configurations...)
  3. En la pestaña Test marque la casilla 'Mantener JUnit en marcha después de la prueba al depurar'
  4. Vuelva a ejecutar la prueba (con Debug). Esto ejecutará las pruebas, pero lo más importante es dejar la JVM alrededor, para que pueda conectarse mediante JVisualVM.

Si desea perfilar una sección específica de la prueba, establecer un punto de interrupción antes y después le permitirá iniciar/detener la creación de perfiles.

+0

Me toma mucho tiempo ejecutar una prueba Spring JUnit con SpringJUnit4ClassRunner. Al marcar esta opción obvia todo eso. ¡Gracias! – IcedDante

+1

Tal vez me esté perdiendo algo, pero me parece que volver a ejecutar las pruebas inicia una máquina virtual diferente (no la que se está supervisando), por lo que no se recopilan datos. Como solución alternativa, pongo un punto de interrupción en la inicialización del constructor/@ Parameters, luego puedo vincular el monitor antes de ejecutar la prueba. – Javier

+0

Gracias por el consejo. Ok, la solución funciona ... Abre jvisualvm y luego "Muestra" el RemoteTestRunner, y puede obtener algunos comentarios significativos de la experiencia. Pero en comparación con la prueba de Junit del perfil de Nebeans, este enfoque simplemente no compite. Dependiendo de la omplejidad de la prueba unitaria, los volúmenes de datos que hagas para enfatizarlo, a menos que se encuentre un plugin decente para esto, obtendré netbeans de vainilla y haré el análisis. Si no vale la pena el tiempo de inversión, entonces el enfoque de muestreo visualvm está bien. – 99Sono

7

JProfiler tiene un plugin de eclipse que admite configuraciones de ejecución de JUnit. Consulte here para ver una proyección de pantalla en la integración de IDE de eclipse.

Para mantener la JVM activa después de que termine la prueba (para que pueda analizar los resultados), edite la configuración de perfiles y seleccione "Mantener VM viva" en la pestaña "Varios".

Descargo de responsabilidad: Mi empresa desarrolla JProfiler.

+0

gracias. esto fue, de hecho, lo que estaba buscando. – user643011

+0

¿Hay un período de prueba o tiene que comprarlo por adelantado? – Thomas

+0

Hay un período de evaluación de 10 días cuando lo descarga, pero puede obtener más tiempo también. –