Tomask
Tomask

Reputation: 2394

How to debug instrumentation tests in Android Studio?

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.

Upvotes: 22

Views: 13674

Answers (2)

shubhamgarg1
shubhamgarg1

Reputation: 1995

For me, switching to "Run Android instrumented Tests using Gradle" works fine.

Go to Android Studio -> Preferences and toggle this option.

enter image description here

If it is already enabled, try disabling it and hope for the best.

Upvotes: 2

atgrubb
atgrubb

Reputation: 1203

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!

Upvotes: 12

Related Questions