在ActivityInstrumentationTestCase2中运行espresso

Nav*_*ake 2 android android-espresso

我已经写了一些测试用例但是当我尝试在其中加入浓缩咖啡时,它会显示出来 java.lang.IllegalStateException: No instrumentation registered! Must run under a registering instrumentation.

我知道我应该迁移到junit 4,但我真的不想改变所有的测试.

这是测试类:

public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActivity> {

    private Activity activity;

    public MainActivityTest() {
        super(MainActivity.class);
    }

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

    @Test
    public void testEmptyField() {
        onView(withId(R.id.editText)).perform(typeText(""));

        onView(withId(R.id.buttonVerify)).perform(click());

        onView(withText("Please input text")).check(matches(isDisplayed()));
    }

}
Run Code Online (Sandbox Code Playgroud)

以下是我包含的依赖项:

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile project(':UniversalImageLoader')
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.android.support:support-v4:23.1.1'
    androidTestCompile 'com.android.support.test:runner:0.4'
    androidTestCompile 'com.android.support.test:rules:0.4'
    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1'
}
Run Code Online (Sandbox Code Playgroud)

yog*_*arl 5

即使您使用的是ActivityInstrumentationTestCase2,仍然必须使用测试支持lib runner来使用测试支持库中的内容,如下所示:

android {
    defaultConfig {
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
}
Run Code Online (Sandbox Code Playgroud)

http://developer.android.com/tools/testing-support-library/index.html