2011-07-01 10 views
6

Estoy trabajando con un proyecto Maven de múltiples artefactos en el que los artefactos del proyecto tienen unas pocas dependencias entre sí. Estoy usando IntelliJ 9. Me gustaría poder establecer puntos de interrupción en mis pruebas unitarias, pero cuando hago clic derecho en la carpeta de pruebas de la unidad para mi artefacto y selecciono "Depurar 'Todas las pruebas'", obtengo una Clase no encontró una excepción al referirse a una clase en un artefacto Maven separado.¿Cómo puedo ejecutar el depurador IntelliJ en pruebas unitarias en un proyecto Maven?

Puedo ejecutar el objetivo de "prueba" de Maven en el artefacto padre y funciona bien.

¿Alguna idea? Gracias.

Respuesta

1

Quería ejecutar las pruebas unitarias para un paquete específico.

Pude hacer que esto funcionara al realizar una nueva configuración de ejecución/depuración de JUnit en IntelliJ. Le dije que ejecutara las pruebas en el paquete específico y para "Usar classpath y JDK del módulo", seleccioné el artefacto raíz de Maven.

9

Al ejecutar Maven desde la línea de comandos, podrá ejecutarlo con el depurador habilitado y adjuntar Idea como depurador remoto. Así es como yo generalmente lo uso.

mvn -Dmaven.surefire.debug="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -Xnoagent -Djava.compiler=NONE" test 

Ver http://maven.apache.org/plugins/maven-surefire-plugin/examples/debugging.html

Esto permitirá la conexión depurador al puerto 8000 y espera a que usted una antes de la ejecución.

+0

Gracias por los consejos. Pude hacerlo funcionar retocando una configuración de ejecución/depuración de JUnit en IntelliJ. –

+0

Estoy pensando que esto no sería muy eficiente para mí ya que solo quiero ejecutar las pruebas unitarias para un paquete específico ... Tendría que ejecutar la prueba mvn en el POM raíz que ejecutaría todas las pruebas unitarias –

+0

Podría siempre use -Dtest como se describe aquí. Pero si lo resolviste en Idea, ¡genial! –

Cuestiones relacionadas