Running a specific instrumentation unit test with Gradle

android, gradle, unit-testing

Solution

Using `test.single` appears to be deprecated. The new correct way to do this is

./gradlew :<module>:test --tests <pattern>

where `<pattern>` could be something like:

- `com.example.MyTest` to run all test methods in com.example.MyTest

- `*MyTest` to match every method in every class whose name ends with MyTest

- `*.MyTest.myMethod` to run a specific test method in class MyTest in any package

If you have a multi-project build, make sure to give the module path before the `test` task; otherwise you'll get a misleading error message when it searches for your test pattern in every subproject.

None of this is documented on the Gradle site anywhere I could find it.

Problem

Is there a way to run a specific Android instrumentation unit test using Gradle? I've tried ``` gradle -Dtest.single=UnitTestName connectedInstrumentTest ``` but it seems to run all the tests in the package.

Original source

Related problems