J'exécute un test d'instrumentation dans Android Studio avec la configuration d'exécution définie ci-dessous (attention):
Il s’agit donc d’appeler une combinaison de test pour une classe spécifique. Comment est-ce que je peux réaliser ceci avec la ligne de commande, j'imagine en utilisant la commande ./gradlew?
Comme indiqué dans le AndroidTestingBlueprint vous pouvez utiliser la propriété Android.testInstrumentationRunnerArguments.class
:
./gradlew app:connectedAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.example.Android.testing.blueprint.ui.espresso.EspressoTest
Selon les docs :
Lorsque vous exécutez des tests à partir de la ligne de commande avec Android Debug Bridge (adb), vous disposez de davantage d'options pour choisir les tests à exécuter qu'avec toute autre méthode. Vous pouvez sélectionner des méthodes de test individuelles, filtrer les tests en fonction de leur annotation ou spécifier des options de test. Comme l'exécution du test est entièrement contrôlée à partir d'une ligne de commande, vous pouvez personnaliser vos tests avec les scripts Shell de différentes manières.
Pour exécuter des tests d'instrumentation avec adb pour une classe particulière, procédez comme suit:
adb Shell am instrument -w -e class 'com.myapp.MyActivityTest' com.myapp.test/Android.support.test.runner.AndroidJUnitRunner
Notez que si vous avez défini une testInstrumentationRunner
personnalisée dans votre fichier app/build.gradle
, vous devez remplacer Android.support.test.runner.AndroidJUnitRunner
par le vôtre, comme ceci:
adb Shell am instrument -w -e class 'com.myapp.MyActivityTest' com.myapp.test/com.myapp.MyCustomTestRunner
Astuce: Si vous obtenez une erreur parce que la commande n'est pas correcte, sachez que vous pouvez simplement obtenir la bonne commande en exécutant les tests à partir d'Android Studio. Vous verrez la commande sur la sortie de la fenêtre Exécuter.
Ces 2 pages de documentation contiennent des options d'exécution:
https://developer.Android.com/reference/Android/support/test/runner/AndroidJUnitRunner#typical-usage
https://developer.Android.com/studio/test/command-line#AMSyntax