Gradle construire sans tests
Je veux exécuter gradle build
sans exécuter les tests unitaires. J'ai essayé:
$ gradle -Dskip.tests build
, ce Qui ne semble pas faire quoi que ce soit. Est-il une autre commande que je pourrais utiliser?
7 réponses
Essayez:
gradle assemble
Pour lister toutes les tâches disponibles pour votre projet, essayez:
gradle tasks
Mise à jour:
Cela peut ne pas sembler la réponse la plus correcte au début, mais lisez attentivement gradle tasks
output ou docs.
Build tasks
-----------
assemble - Assembles the outputs of this project.
build - Assembles and tests this project.
La réponse acceptée est la bonne.
OTOH, la façon dont j'ai précédemment résolu cela était d'ajouter ce qui suit à tous les projets:
test.onlyIf { ! Boolean.getBoolean('skip.tests') }
Exécutez la construction avec -Dskip.tests=true
et toutes les tâches de test seront ignorées.
Pour exclure une tâche de gradle, utilisez l'option de ligne de commande -x
. Voir l'exemple ci-dessous
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'
}
Sortie de: gradle -q dist -x runningTest
task compile
compile test
running distribution job
Espère que cela vous donnera la base
gradle build -x test --parallel
Si votre machine a plusieurs cœurs. Cependant, il n'est pas recommandé d'utiliser en parallèle propre.
La manière différente de désactiver les tâches de test dans le projet est:
tasks.withType(Test) {enabled = false}
Ce comportement est parfois nécessaire si vous voulez désactiver les tests dans l'un d'un projet (ou le groupe de projets).
Cette façon de travailler pour toutes sortes de tâches de test, pas seulement un java 'tests'. En outre, cette façon est sûr. Voilà ce que je veux dire
disons: vous avez un ensemble de projets dans différentes langues:
si nous essayons d'ajouter ce genre d'enregistrement dans main build.gradle
:
subprojects{
.......
tests.enabled=false
.......
}
Nous échouerons dans un projet quand si nous n'avons pas tâche appelée tests
, Vous pouvez essayer d'ajouter les lignes suivantes build.gradle
, **/*
exclure tous les tests.
test {
exclude '**/*'
}