Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android Studio Espresso Testing Error: Empty Test Suite

I keep running into the following error when trying to execute my tests in Android Studio: Test running failed: Unable to find instrumentation info for: ComponentInfo{.test/android.support.test.runner.AndroidJUnitRunner}

My test class is in the androidTest/java directory and has a constructor. My build.gradle is correct too. Any help is appreciated.

Test Class

@RunWith(AndroidJUnit4.class)
@LargeTest
public class AndroidUITests extends ActivityInstrumentationTestCase2<UserActivity>{

    private UserActivity userActivity;

    public AndroidUITests() {
        super(UserActivity.class);
    }


    @Before
    public void setUp() throws Exception {
        super.setUp();
        injectInstrumentation(InstrumentationRegistry.getInstrumentation());
        userActivity = getActivity();
    }

    @Test
    public void testPhoneIconIsDisplayed() {
        // When the phone_icon view is available,
        // check that it is displayed.
        onView(ViewMatchers.withId(R.id.groupCreate)).perform(click())
                .check(matches(withText("Enter a name")));
    }
}

app/build.gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    defaultConfig {
        testInstrumentationRunner
        "android.support.test.runner.AndroidJUnitRunner"
    }

    packagingOptions {
        exclude 'LICENSE.txt'
    }
}

dependencies {
    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.0'
    androidTestCompile 'com.android.support.test:testing-support-lib:0.1'
}
like image 891
Isaac Avatar asked Apr 28 '15 21:04

Isaac


3 Answers

While the question is already answered, figured it was worth posting for future visitors.

Make sure you check the logcat logs to ensure something isn't causing issues (crash) before the test is even run. I had bad code in my @BeforeClass block which resulted in the "Empty Test Suite" message in Android Studio despite having properly set the test runner.

like image 190
loeschg Avatar answered Nov 13 '22 04:11

loeschg


You have to update the test "Edit Configuration" and include the AndroidJUnitRunner as the instrumentation runner.

enter image description here

I found the solution in this video: https://youtu.be/TGU0B4qRlHY?t=9m36s

Updated

Adding what @loeschg suggest: Make sure you check the logcat logs to ensure something isn't causing issues (crash) before the test is even run. Bad code in the @BeforeClass block could resulted in the "Empty Test Suite" message in Android Studio despite having properly set the test runner.

like image 20
Juan Saravia Avatar answered Nov 13 '22 02:11

Juan Saravia


If you get such error message:

Class not found: "com.example.product.package.name.SomeSpecificTest" Empty test suite.

You need to make sure if your Espresso test is added under Android Instrumented Tests section in Run/Debug Configurations.

It seems like Android Studio 3.1.3 is sometimes adding it incorrectly to Android JUnit section instead.

Make sure it looks something like this: Run/Debug Configurations with Android Instrumented Tests and Android JUnit

Also, worth mentioning that I've noticed, that this issue occurs for me while a non Debug build variant is selected.

like image 7
ViliusK Avatar answered Nov 13 '22 02:11

ViliusK