Reputation: 449
Using Run Configurations you can specify groups of tests to run, provided that they are in the same class or the same package. However, I want to specify a group of tests, where the tests are sprinkled throughout my test suite.
I was not able to find specific instructions for how to do this. I figured out a way, and thought I would share it here, in case anyone else finds it useful.
Upvotes: 2
Views: 902
Reputation: 449
I solved the problem by creating an annotation (can be applied to a test class or to a test method), and having the test runner filter on that annotation.
/**
* This annotation is used to mark tests for devices with a physical
* keyboard (Chromebook).
*
* The annotation can be applied to test classes, and to individual
* tests.
*/
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface PhysicalKeyboardTest {
}
@Test
@PhysicalKeyboardTest
public void enterKey_shouldWork() {
...
}
In the Run Configuration dialog, under "Android Instrumented Tests"
The "Physical Keyboard Tests" run configuration will run all tests annotated with "@PhysicalKeyboardTest", anywhere in the test suite.
In the Run Configuration dialog, under "Gradle"
The "Physical Keyboard Tests (all devices)" run configuration will run all tests annotated with "@PhysicalKeyboardTest", anywhere in the test suite, on all of the connected devices.
Upvotes: 6