Home » Android » testing – How can I run a single instrumentation test with Gradle Android

testing – How can I run a single instrumentation test with Gradle Android

Posted by: admin April 23, 2020 Leave a comment

Questions:

I’m trying to run the tests with this line… but this launches all tests:

./gradlew -DconnectedAndroidTest.single=LandingActivityTests connectedAndroidTest

How can I launch a single test?

How to&Answers:

you can run the single android test in two steps:

  1. ./gradlew installDebugAndroidTest
  2. adb shell am instrument -w -e class com.example.MyInstrumentationTest#testFoo com.example.test/android.support.test.runner.AndroidJUnitRunner

    https://developer.android.com/tools/testing/testing_otheride.html

Answer:

Since Android Gradle plugin version 1.3.0 you can use

./gradlew -Pandroid.testInstrumentationRunnerArguments.class=your.package.LandingActivityTests connectedAndroidTest

Answer:

if you want to run just one test inside the class do something like

./gradlew -Pandroid.testInstrumentationRunnerArguments.class=my.app.package.register.RegisterEmailTest#can_register connectedAndroidTest

can_register is a method in a class RegisterEmailTest

NOTE: the package needs to reference where the class is otherwise it will not work.

Answer:

Visit Testing
Sadly, gradle connectedAndroidTest task is not supporting all the arguments.
There is feature request for gradle team.
If you are using Android Studio, you can create Run Configuration that launches specific test via adb shell am instrument