Android Espresso在构造函数中的异常



我已经在我的Android项目中设置了Jake Wharton的双浓缩咖啡测试实用程序,但是当我运行测试类时,我得到以下错误:

junit.framework.AssertionFailedError: Exception in constructor: testClickActionBarItems (java.lang. lang.)NoClassDefFoundError: com.example.android.activities.TrialActivity在com.example.android.activities.TrialActivityTest。(TrialActivityTest.java: 23)

我的测试类如下:

@LargeTest
public class TrialActivityTest extends ActivityInstrumentationTestCase2<TrialActivity>{
@SuppressWarnings("deprecation")
public SectionsEspressoTest() {
    super(TrialActivityTest.class);
}
@Override
public void setUp() throws Exception {
    super.setUp();
    // Espresso will not launch our activity for us, we must launch it via getActivity().
    getActivity();
}
public void testClickActionBarItems() {
    onView(withId(R.id.action_search))
            .perform(click());
}
}

我已经在构建中添加了必要的组件。gradle文件:

testInstrumentationRunner "com.google.android.apps.common.testing.testrunner.GoogleInstrumentationTestRunner"
    androidTestCompile('com.jakewharton.espresso:espresso:1.1-r3') {
    exclude group: 'org.hamcrest'
}
androidTestCompile('com.jakewharton.espresso:espresso-support-v4:1.1-r3') {
    exclude group: 'com.android.support', module: 'support-v4'
    exclude group: 'org.hamcrest'
}

上面的组被排除在外,因为它们在我的项目中的其他库中使用。我使用版本gradle 0.10和Android Studio 0.5.8。如果有人知道我做错了什么,我将非常感谢你的帮助。

不确定这是否会完全解决问题,但是您的测试构造函数应该像这样调用super:

public TrialActivityTest(){
    super(TrialActivity.class);
}

最新更新