在android studio中运行测试用例时出现ButterKnife错误

时间:2014-09-05 07:59:13

标签: java android unit-testing butterknife

我在androidTest文件夹中创建了一个测试用例MyHomeActivityTest.Java 在      /app/src/androidTest/java/MyHomeActivityTest.java

我有一个HomeActivity.java类      /app/src/main/java/HomeActivity.java

在我的HomeActivity.java类中,我使用butterknife进行视图注入。我在MyHomeActivityTest.java中运行HomeActivity的测试用例。

但是当我运行测试用例时,测试运行正常,但是对于butterknife来说NoClassDefFound是错误的。

我的项目课程

MyHomeActivityTest.java

public class HomeActivityTest extends ActivityInstrumentationTestCase2<HomeActivity> {
    private Solo solo;

    public HomeActivityTest() {
        super(HomeActivity.class);
    }

    public void setUp() throws Exception {
        super.setUp();
        solo = new Solo(getInstrumentation());
        getActivity();
    }

    @Override
    public void tearDown() throws Exception {
        solo.finishOpenedActivities();
        super.tearDown();
    }

    public void testRun() {
        solo.assertCurrentActivity("Home activity class",HomeActivity.class);
        final LinearLayout homeScreen =
                (LinearLayout) solo.getCurrentActivity().findViewById(R.id.home_screen);
        assertEquals(View.GONE, homeScreen.getVisibility());
    }

}

的build.gradle

dependencies{
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.jakewharton:butterknife:5.1.1'
    compile 'com.squareup.picasso:picasso:1.1.1'
    androidTestCompile 'com.jayway.android.robotium:robotium-solo:5.1'
}

一旦我运行MyHomeActivityTest类,它就会给我NoClassDefFoundError,因为它的超类是使用butterKnife的HomeActivity.class。

1 个答案:

答案 0 :(得分:1)

尝试将ButterKnife依赖项添加到AndroidTest文件夹中。