How to debug instrumentation tests in Android Studio?

Tomask picture Tomask · Apr 28, 2016 · Viewed 7.3k times · Source

In Android Studio when I debug instrumentation test, the test won't stop on any breakpoint. Debugging unit tests works. I have a simple instrumented test that only checks if username edittext is displayed:

@RunWith(AndroidJUnit4.class)
public class LogonActivityTest {

    @Rule
    public ActivityTestRule<LogOnActivity> mActivityRule = new ActivityTestRule<>(LogOnActivity.class, true, false);

    @Before
    public void setUp() throws Exception {
        mActivityRule.launchActivity(new Intent()); // breakpoint here
    }

    @Test
    public void testSimple() throws Exception {
        onView(withId(R.id.act_logon_et_username)).check(matches(isDisplayed())); // breakpoint here
    }
}

In build.gradle I have properly set

testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

How can I debug instrumented tests? I'm using Espresso, Mockito and Dagger 2.

Answer

atgrubb picture atgrubb · May 20, 2016

You can solve this a couple of ways Tomask.

You can pass the option -e debug true in the configuration for your test if you're invoking the test from the command line.

Otherwise, and more simply, you should choose Debug instead of Run when starting your tests from android studio. If you click Run for your test from android studio, the option -e debug false gets set and the test(s) will not stop execution at breakpoints.

Hope this helps!