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?
-DskipTests
es para Maven
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?
-DskipTests
es para Maven
Respuestas:
Debe usar el -x
argumento de la línea de comando que excluye cualquier tarea.
Tratar:
gradle build -x test
Actualizar:
El enlace en el comentario de Peter cambió. Aquí está el diagrama de la guía del usuario de Gradle
-x integTest
, etc., por lo que no es tan conveniente como la manta de Maven -DskipTests
.
run
puedo ver el efecto de mi programa Hello. Pero creo que está compilando todo de nuevo. Solo me gustaría ejecutar el programa java.
Tratar:
gradle assemble
Para enumerar todas las tareas disponibles para su proyecto, intente:
gradle tasks
ACTUALIZAR:
Puede que al principio no parezca la respuesta más correcta, pero lea detenidamente la gradle tasks
salida o los documentos.
Build tasks
-----------
assemble - Assembles the outputs of this project.
build - Assembles and tests this project.
gradle assemble
no compilará los archivos principales. Si trabaja para reparar su prueba de unidad, entonces necesita gradle assemble testClasses
: creo que el nombre de la tarea de construcción es bastante confuso.
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.
Puede agregar las siguientes líneas a build.gradle
, **/*
excluye todas las pruebas.
test {
exclude '**/*'
}
Puedes excluir tareas
gradle build --exclude-task test
Para excluir cualquier tarea de gradle, use la -x
opción de línea de comandos. 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 te dé lo básico
La forma diferente de deshabilitar las tareas de prueba en el proyecto es:
tasks.withType(Test) {enabled = false}
Este comportamiento a veces es necesario si desea deshabilitar las pruebas en uno de un proyecto (o el grupo de proyectos).
De esta forma, trabajamos para todo tipo de tareas de prueba, no solo para las 'pruebas' de Java. Además, de esta manera es seguro. Esto es lo que quiero decir, digamos: tiene un conjunto de proyectos en diferentes idiomas: si intentamos agregar este tipo de registro en main build.gradle
:
subprojects{
.......
tests.enabled=false
.......
}
fallaremos en un proyecto cuando si no tenemos una tarea llamada pruebas
Usar la -x test
ejecución de prueba de omisión, 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 donde un objetivo es compilar y el siguiente objetivo es probar (Build -> Test).
Entonces, para nuestro primer Build
objetivo, queríamos asegurarnos de que todo el proyecto se compilara bien. Para esto hemos utilizado:
./gradlew build testClasses -x test
En el próximo objetivo simplemente ejecutamos pruebas.
gradle build -x test --parallel
Si su máquina tiene múltiples núcleos. Sin embargo, no se recomienda utilizar una limpieza paralela.
Por favor intente esto:
gradlew -DskipTests=true build
$ gradle tasks
Build tasks
-----------
assemble - Assembles the outputs of this project.
build - Assembles and tests this project.
testClasses - Assembles test classes.
Verification tasks
------------------
test - Runs the unit tests.
La construcción de Gradle sin prueba tiene dos opciones:
$ gradle assemble
$ gradle build -x test
pero si quieres compilar prueba:
$ gradle assemble testClasses
$ gradle testClasses