Compilación de Gradle sin pruebas


Quiero ejecutar gradle build sin ejecutar las pruebas unitarias. Lo intenté:

$ gradle -Dskip.tests build

Eso no parece hacer nada. ¿Hay algún otro comando que pueda usar?

 434
Author: Jacek Laskowski, 2011-01-04

7 answers

Debe usar el argumento de línea de comandos -x que excluye cualquier tarea.

Intenta:

gradle build -x test 

Actualización:

El enlace en el comentario de Pedro cambió. Aquí está el diagrama de la guía del usuario de Gradle

 861
Author: c_maker,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-12-30 14:17:34

Intenta:

gradle assemble

Para listar todas las tareas disponibles para tu proyecto, prueba:

gradle tasks

ACTUALIZACIÓN:

Esta puede no parecer la respuesta más correcta al principio, pero lea cuidadosamente gradle tasks la salida o los documentos.

Build tasks
-----------
assemble - Assembles the outputs of this project.
build - Assembles and tests this project.
 72
Author: Emil Sit,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-04-25 10:45:06

La respuesta aceptada es la correcta.

OTOH, la forma en que resolví esto anteriormente fue agregar lo siguiente a todos los proyectos:

test.onlyIf { ! Boolean.getBoolean('skip.tests') }

Ejecute la compilación con -Dskip.tests=true y se omitirán todas las tareas de prueba.

 27
Author: David Resnick,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-03-11 20:44:40

Referencia

Para excluir cualquier tarea de gradle, usa la opción de línea de comandos -x. Ver el siguiente ejemplo

task compile << {
    println 'task compile'
}

task compileTest(dependsOn: compile) << {
    println 'compile test'
}

task runningTest(dependsOn: compileTest) << {
    println 'running test'
}
task dist(dependsOn:[runningTest, compileTest, compile]) << {
    println 'running distribution job'
}

Salida de: gradle -q dist -x runningTest

task compile
compile test
running distribution job

Espero que esto le dé la base

 3
Author: Suganthan Madhavan Pillai,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-12 09:56:07
gradle build -x test --parallel

Si su máquina tiene varios núcleos. Sin embargo, no se recomienda utilizar parallel clean.

 0
Author: Yan Khonski,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-31 08:26:05

La forma diferente de deshabilitar las tareas de prueba en el proyecto es:

tasks.withType(Test) {enabled = false}

Este comportamiento es necesario a veces si desea desactivar las pruebas en uno de un proyecto(o el grupo de proyectos).

De esta manera se trabaja para todo tipo de tareas de prueba, no solo para las 'pruebas'de java. Además, este camino es seguro. Esto es lo que quiero decir digamos: tienes un conjunto de proyectos en diferentes idiomas: si intentamos añadir este tipo de registro en main build.gradle:

 subprojects{
 .......
 tests.enabled=false
 .......
}

Fallaremos en un proyecto cuando si no tenemos tarea llamada pruebas

 0
Author: Sergey Yakovlev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-03 12:01:26

Puede intentar agregar las siguientes líneas a build.gradle, **/* excluir todas las pruebas.

test {
    exclude '**/*'
}
 0
Author: Guisong He,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-29 11:17:20