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?
You can do gradle -Dtest. single=ClassUnderTestTest test if you want to test single class or use regexp like gradle -Dtest. single=ClassName*Test test you can find more examples of filtering classes for tests under this link.
Instrumented tests run on Android devices, whether physical or emulated. As such, they can take advantage of the Android framework APIs. Instrumented tests therefore provide more fidelity than local tests, though they run much more slowly.
Since Android Gradle plugin version 1.3.0 you can use
./gradlew -Pandroid.testInstrumentationRunnerArguments.class=your.package.LandingActivityTests connectedAndroidTest
you can run the single android test in two steps:
./gradlew installDebugAndroidTest
adb shell am instrument -w -e class com.example.MyInstrumentationTest#testFoo com.example.test/android.support.test.runner.AndroidJUnitRunner
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.
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With