2010-09-24 17 views

Respuesta

21

¿Qué tal un clic derecho en su objetivo y "Depurar [su objetivo]" (en su caso, el objetivo de la prueba)?

debug goal

+0

Ahh no pensó en eso. Demasiado tarde un viernes por la tarde: D Gracias. – JavaRocky

+12

Suponiendo que desea utilizar puntos de interrupción, esta respuesta es insuficiente. Ver la respuesta de Hover en su lugar. – dgtc

20

ejecuto pruebas con las siguientes opciones:

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

... y luego se conectan a Maven con el depurador remoto.

+0

¿Logró que funcionara log4j/logging? Incluso he incluido la ruta -Dlog4j.configuration = pero las instrucciones de registro no se están imprimiendo. – javadba

131

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

En IDEA, ejecute la prueba en modo de depuración "mvn -DforkMode=never test"

Actualizado: Abre la configuración de ejecución/depuración, en la pestaña "Runner", añadir -DforkMode=never

enter image description here

(Observado por @ mikeapr4: versiones más recientes del plugin surefire (2.14+) use mvn -DforkCount=0 test)

+0

Eso funcionó para mí. Estoy utilizando el siguiente comando para depurar el objetivo de la prueba en Idea 10. –

+1

En mi proyecto de varios módulos, esta fue la única opción que funcionó para mí desde Intellij. – nash

+22

Con IDEA 11, encontré en proyectos de Maven, tuve que hacer clic derecho en la prueba del módulo que quería probar. Esto creó una configuración de ejecución/depuración. Luego edite esta nueva configuración, haga clic en la pestaña del corredor y agregue -DforkMode = never en las Opciones de VM. Haga clic en Aceptar. Establezca un punto de interrupción, luego haga clic en el icono de depuración para ejecutar la nueva configuración de depuración.Una combinación de lo anterior, así que gracias por los consejos. – foolshat

7

La pregunta ha sido respondida. Pero solo para compartir mi propia experiencia. La respuesta seleccionada no resolvió mi problema. Mi código tiene múltiples módulos.

foolshat la respuesta aportó una valiosa información a mi problema.

Tengo dos soluciones, 1. Utilización de su idea, añadiendo una opción VM-DforkMode=never; Debe ejecutarlo con el modo de depuración. 2. Configure una eliminación remota de errores , especificando el socket y en este caso forkMode no es necesario.

Es solo un resumen de lo que he pasado.

+0

¡Muchas gracias! – tsykora

8

-DforkMode=never ya no funciona, ahora está en desuso en SureFire.

Use -DforkCount=0 en su lugar cuando use el plugin surefire 2.14+.

+2

Eso funciona, pero esta respuesta es confusa. –

+0

Surefire dice que se debe usar 'forkCount' y' reuseForks' en su lugar, así que creo que lo anterior significaba decir, "Use' -DforkCount = 0' en su lugar. " Intenté '-DforkCount = 0' (' reuseForks' no debería importar si no hay bifurcaciones), pero mi punto de interrupción nunca se activó. Se dispara con '-DforkMode = never' (Maven 3.2.1, IDEA 13.1.2). – mmindenhall

Cuestiones relacionadas