Existe-t-il un moyen d'exécuter uniquement un ensemble spécifique de tests dans un projet Android Gradle ?

StackOverflow https://stackoverflow.com//questions/23046259

Question

J'ai un projet Android/Gradle.Chaque fois que je veux exécuter des tests, je lance :

./gradlew connectedInstrumentTest

qui exécute tous mes tests dans le dossier test de mon projet.

Mon dossier de tests contient plusieurs tests d'automatisation ainsi que des tests de non-automatisation.Je souhaite surtout exécuter les tests rapides de non-automatisation sans les tests d'automatisation lents.

Existe-t-il un moyen d'exécuter uniquement un ensemble spécifique de tests, par exemple à partir d'une classe spécifique ou quelque chose de similaire ?Je pose essentiellement des questions sur tout type de séparation afin de pouvoir choisir d'exécuter seulement quelques tests quand je le souhaite.


Création d'un exemple de projet ici.

Modifier local.properties pour pointer vers votre SDK Android.

Ensuite, démarrez un émulateur ou connectez un téléphone à votre ordinateur.Ensuite, vous pouvez exécuter des tests en utilisant ./gradlew connectedInstrumentTest --info.Cela exécute tous les tests.

Ce que je n'arrive pas à comprendre, c'est comment exécuter des tests uniquement dans, disons, une classe et non dans tous les tests.

Était-ce utile?

La solution

Depuis le plugin Android Gradle 1.3.0

À partir de la version 1.3.0, vous pouvez (enfin !) spécifier les arguments que le plugin Android Gradle doit transmettre au InstrumentationTestRunner.

Par exemple, si vous souhaitez exécuter uniquement les tests annotés avec @SmallTest et ignore les autres :

android {
  //....
  defaultConfig {
  //....
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    testInstrumentationRunnerArgument "size", "small"
  }
}

Ancienne solution de contournementAvant le plugin 1.3.0, il n'est pas possible de faire cela mais j'ai trouvé une petite solution de contournement.En gros, j'ai annoté avec le @SmallTest annotation des tests rapides et utilisation d'une sous-classe personnalisée du InstrumentationTestRunner Je suis capable de les exécuter uniquement et non de la suite entière.

Vous pouvez trouver l'exemple de code dans cet essentiel.

Autres conseils

Oui, veuillez regarder ici .Il devrait également travailler avec un projet Android.Malheureusement, autant que je sache, il n'y a aucun moyen de lancer une méthode unique - vous pouvez limiter à une combinaison entière uniquement.

Aussi, vous pouvez installer une combinaison de test sur l'appareil et l'exécuter manuellement via ADB.Voir Documents Android

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top