Compilación de Gradle sin pruebas

4 minutos de lectura

avatar de usuario
dave

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?

  • Tal vez esto te ayude Gradle Buil sin pruebas

    – muchacho pícaro

    10 de junio de 2014 a las 10:23

  • -DskipTests es para maven

    – Gayan Weerakutti

    31 de octubre de 2019 a las 9:02

  • Entiendo que a veces puede ser útil, pero Gradle tiene una concurrencia de prueba fácil de habilitar. Tal vez reducir 1-2 segundos no sea lo mejor, por lo que asegurarnos de pasar menos tiempo ejecutándolos podría permitirnos realizar pruebas siempre y no pagar el costo o pagar poco.

    – Mashimom

    12 de febrero de 2021 a las 8:11


avatar de usuario
c_fabricante

Deberías usar el -x argumento de línea de comando que excluye cualquier tarea.

Probar:

gradle build -x test 

Actualizar:

El enlace en el comentario de Peter cambió. Aquí está el diagrama desde el guía del usuario gradle

  • Esta es la respuesta correcta. ‘gradle ensamblar’ también dejará de lado muchas otras tareas. Mira esto diagrama para hacerse una idea. Para las compilaciones típicas de la vida real, el ‘ensamblaje gradle’ dejará de lado aún más tareas.

    –Peter Niederwieser

    3 de febrero de 2011 a las 16:48

  • El enlace de @PeterNiederwieser ya no es válido. Probablemente se refería a este diagrama: gradle.org/docs/current/userguide/img/javaPluginTasks.png

    – Dave L.

    12 de agosto de 2012 a las 18:23


  • Funciona aunque es posible que deba agregar, por ejemplo -x integTest y así sucesivamente, por lo que no es tan conveniente como la manta de Maven -DskipTests.

    –Jesse Glick

    16 de agosto de 2013 a las 16:37

  • @c_maker, ¿Cómo realizar esto desde eclipse?

    – rinutomaz

    21 de junio de 2016 a las 14:55


  • Por cierto, puede excluir no todos, pero sí el módulo determinado (es decir, para module1) prueba usando la siguiente sintaxis: gradle build -x :module1:test

    – Antón Ermakov

    31 de mayo de 2017 a las 11:37


avatar de usuario
emil sentarse

Probar:

gradle assemble

Para enumerar todas las tareas disponibles para su proyecto, intente:

gradle tasks

ACTUALIZAR:

Esta puede no parecer la respuesta más correcta al principio, pero lea con atención. gradle tasks salida o documentos.

Build tasks
-----------
assemble - Assembles the outputs of this project.
build - Assembles and tests this project.

  • Como sugerencia adicional en caso de que esté depurando sus pruebas unitarias: gradle assemble no compilará los archivos principales. Si trabaja para arreglar la prueba de su unidad, entonces necesita gradle assemble testClasses — Creo que el nombre de la tarea de compilación es bastante confuso.

    – Martín

    25 de febrero de 2015 a las 7:47

avatar de usuario
Guisong él

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

test {
    exclude '**/*'
}

  • Esto es bueno porque puedo hacer esto en IntelliJ fácilmente y no en la línea de comandos.

    – javaPor favor42

    17 de junio de 2020 a las 16:33

  • Desafortunadamente, al hacer esto, no será posible ejecutar ninguna prueba en IDEA.

    – Nikola Mihajlović

    2 de diciembre de 2021 a las 6:28

  • @NikolaMihajlović puede envolver la exclusión en un if(....) bloque ei. (solo en producción)

    – Eboubaker

    4 de diciembre de 2021 a las 13:43


avatar de usuario
david resnick

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.

Cada acción en gradle es un tasky tambien test. Y para excluir un task desde gradle run, puedes usar la opción --exclude-task o es abreviado -x seguido del nombre de la tarea que debe excluirse. Ejemplo:

gradle build -x test

los -x La opción debe repetirse para todas las tareas que deben excluirse.

Si tiene diferentes tareas para diferentes tipos de pruebas en su build.gradle archivo, entonces debe omitir todas las tareas que ejecutan test. Di que tienes una tarea test que ejecuta pruebas unitarias y una tarea testFunctional que ejecuta pruebas funcionales. En este caso, puede excluir todas las pruebas como se muestra a continuación:

gradle build -x test -x testFunctional

avatar de usuario
David Newcomb

Usando -x test omita la ejecución de la prueba, pero esto también excluye la compilación del código de prueba.

gradle build -x test 

En nuestro caso, tenemos un proceso de CI/CD en el que un objetivo es la compilación y el próximo objetivo es la prueba (Construir -> Probar).

Entonces, para nuestro primer Build objetivo queríamos asegurarnos de que todo el proyecto se compile bien. Para ello hemos utilizado:

./gradlew build testClasses -x test

En el siguiente objetivo, simplemente ejecutamos pruebas:

./gradlew test

avatar de usuario
Pehmolelu

Puedes excluir tareas

 gradle build --exclude-task test 

https://docs.gradle.org/current/userguide/command_line_interface.html#sec:command_line_executing_tasks

¿Ha sido útil esta solución?