我已经在我的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);
}