Published in


Android Test Orchestrator unmasked

“A view from over a conductor’s stand on an elegant concert hall in Katowice” by Radek Grzybowski on Unsplash


What is it and why use it?

What issues does it solve?

  1. Occasional crashes which stop the entire test suite.
  2. Test overlap.

Test crashes

Test overlap

  • some asynchronous operation starts in test A (e.g. a Service is started and does some IO operation),
  • test A finishes with success, but the asynchronous operation it started does not end,
  • test B starts,
  • the asynchronous operation started in test A affects test B, e.g. it makes some database write operation which changes the app state.

So how do I configure this thing?

  1. Add the following statements to your project’s build.gradle file:
./gradlew connectedCheck

What happens when you run it?

  1. application under test
  2. test APK
  3. Orchestrator APK
  4. Test Service APK
androidTestUtil ''

How does Android Test Orchestrator collect tests?

What happens next?