【问题标题】:Android Espresso Exception in constructor构造函数中的Android Espresso异常
【发布时间】:2014-06-18 08:23:41
【问题描述】:

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

junit.framework.AssertionFailedError: 构造函数中的异常: testClickActionBarItems (java.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());

}
}

我已将必要的组件添加到我的 build.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。如果有人知道我做错了什么,我将不胜感激。

【问题讨论】:

  • 应用了哪些gradle插件?你正在运行什么 gradle 任务?

标签: android android-studio android-testing android-espresso


【解决方案1】:

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

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

【讨论】:

  • 感谢您查看问题。按照您的建议更改构造函数对问题没有影响。
  • 在上面的评论部分查看我的问题。
  • 嘿@yogurtearl 我已经将这个问题缩小到另一个名为 Fest 的测试库的依赖问题。我已经为此发布了一个单独的问题。 stackoverflow.com/questions/24330639/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-07
  • 2012-04-14
  • 1970-01-01
  • 2011-06-11
  • 2013-10-01
  • 2015-02-19
  • 1970-01-01
相关资源
最近更新 更多