java - the - gradle tutorial
Cómo habilitar la depuración en mi JUnit a través de la tarea de prueba de Gradle (4)
Me meto en problemas mientras trato de ejecutar mi prueba JUnit a través de la tarea de prueba gradle. Mientras ejecuto test en eclipse directamente con Run As -> JUnit test, todo está bien, el test se realiza correctamente Pero a través de la tarea de prueba, la prueba siempre falla. Probablemente algún problema con la codificación de mi archivo de recursos txt. Así que me gustaría habilitar la depuración mientras estoy iniciando la prueba con gradle
en build.gradle, mi tarea de prueba ahora se ve como:
test {
tasks.withType(Compile) {
options.encoding = ''UTF-8''
}
}
Entonces, ¿qué debo hacer para habilitar la depuración? Ejecuto las tareas de Gradle desde el panel de Gradle en Eclipse, no desde la consola. ¡Gracias!
Como se explica en el punto 23.12. Test
23.12. Test
en la Guía del usuario de Gradle y ejecute gradle test -Dtest.single=MyTestClass -Dtest.debug
suspenderá la prueba JVM al iniciarse, y le permitirá conectar un depurador externo (como el depurador Eclipse) en el puerto 5005.
Estoy en 4.6 (gradle) y puedo depurar mis pruebas cuando tengo esto en mi archivo build.gradle:
test {
debug true
}
Enlace - https://docs.gradle.org/4.6/userguide/userguide_single.html#sec:java_test
Para realizar pruebas de depuración se debe usar el siguiente argumento: --debug-jvm
Por ejemplo: gradle test --debug-jvm
Gradle suspenderá la ejecución justo antes de ejecutar las pruebas y esperará la conexión del depurador en el puerto 5005.
Para ejecutar solo pruebas específicas, consulte https://docs.gradle.org/current/userguide/java_testing.html#simple_name_pattern
Poner esto aquí como --debug-jvm
no me funcionó, pude hacerlo configurando:
org.gradle.daemon=true
org.gradle.jvmargs=... -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=10999
en
~/.gradle/gradle.properties
Pero cuando me conecto con el depurador de eclipse para el proyecto, ninguno de los puntos de interrupción que he establecido compilar / desencadenar ... Estoy conectado a través del depurador, puedo ver acción en la vista de depuración, siempre que gradle test
desde la línea de comandos, como Los nuevos subprocesos comienzan / se detienen, pero no pueden hacer que se desencadenen puntos de interrupción, intentando resolver esto ahora ...
FYI para detener Deamon Run gradle --stop
Otra solucion
Dejando arriba como referencia, esto funcionó para desencadenar puntos de quiebre en las pruebas, apagué Deamon ya que no pude hacer que funcionara correctamente:
Usando las instrucciones de este artículo: http://blogs.steeplesoft.com/posts/2013/gradle-tip-attaching-a-debugger.html
test {
if (System.getProperty(''DEBUG'', ''false'') == ''true'') {
jvmArgs ''-Xdebug'',
''-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=10999''
}
}
Ejecutado mediante la gradle test -DDEBUG=true
Solución al usar el plugin JUnit Platform Gradle
La solución anterior no funcionará cuando se usa org.junit.platform.gradle.plugin
.
En su lugar, debe ser reemplazado por:
junitPlatformTest {
if (System.getProperty(''DEBUG'', ''false'') == ''true'') {
jvmArgs ''-Xdebug'',
''-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=10999''
}
}