android - Gradle build sans tests




tutorial download (6)

Je veux exécuter la gradle build sans exécuter les tests unitaires. J'ai essayé:

$ gradle -Dskip.tests build

Cela ne semble rien faire. Y a-t-il une autre commande que je pourrais utiliser?


Answers

La façon 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 souhaitez désactiver les tests dans l'un des projets (ou le groupe de projets).

De cette façon, travailler pour toutes sortes de tâches de test, pas seulement des tests de Java. En outre, cette façon est sûre. Voici ce que je veux dire disons: vous avez un ensemble de projets dans différentes langues: si nous essayons d'ajouter ce type d'enregistrement dans le build.gradle principal:

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

nous échouerons dans un projet quand si nous n'avons aucune tâche appelée tests


Essayer:

gradle assemble

Pour répertorier toutes les tâches disponibles pour votre projet, essayez:

gradle tasks

METTRE À JOUR:

Cela peut ne pas sembler la réponse la plus correcte au premier abord, mais lisez attentivement gradle tasks sorties ou docs.

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

gradle build -x test --parallel

Si votre machine a plusieurs cœurs. Cependant, il n'est pas recommandé d'utiliser un nettoyage parallèle.


Reference

Pour exclure toute tâche de l'utilisation gradle -x option de ligne de commande. 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

J'espère que cela vous donnera la base


Vous devez utiliser l'argument de ligne de commande -x qui exclut toute tâche.

Essayer:

gradle build -x test 

Mettre à jour:

Le lien dans le commentaire de Peter a changé. Voici le diagram du guide de l'utilisateur de Gradle


Pour exécuter une seule classe de test, la réponse d'Airborn est bonne.

En utilisant certaines options de ligne de commande, que vous trouverez here , vous pouvez simplement faire quelque chose comme ça.

gradle test --tests org.gradle.SomeTest.someSpecificFeature
gradle test --tests *SomeTest.someSpecificFeature
gradle test --tests *SomeSpecificTest
gradle test --tests all.in.specific.package*
gradle test --tests *IntegTest
gradle test --tests *IntegTest*ui*
gradle test --tests *IntegTest.singleMethod
gradle someTestTask --tests *UiTest someOtherTestTask --tests *WebTest*ui

À partir de la version 1.10 de Gradle, il est possible de sélectionner des tests en utilisant un filtre de test . Par exemple,

apply plugin: 'java'

test {
  filter {
    //specific test method
      includeTestsMatching "org.gradle.SomeTest.someSpecificFeature"

     //specific test method, use wildcard for packages
     includeTestsMatching "*SomeTest.someSpecificFeature"

     //specific test class
     includeTestsMatching "org.gradle.SomeTest"

     //specific test class, wildcard for packages
     includeTestsMatching "*.SomeTest"

     //all classes in package, recursively
     includeTestsMatching "com.gradle.tooling.*"

     //all integration tests, by naming convention
      includeTestsMatching "*IntegTest"

     //only ui tests from integration tests, by some naming convention
     includeTestsMatching "*IntegTest*ui"
   }
}




gradle