新的gradle和android sdk版本的机器人问题

时间:2015-05-26 00:54:42

标签: android junit robolectric

直到最近,我曾经能够使用带有gradle的roboelectric。我一直收到错误Error:(6, 17) error: package org.junit does not exist。我不太确定并且已经深入挖掘了这一点。

以下是我的项目build.gradle:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        mavenCentral()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.3'
    }
}

allprojects {
    repositories {
        mavenCentral()
        jcenter()
    }
}

以下是我的app build.gradle:

repositories {
    mavenCentral()
    jcenter()
}

apply plugin: 'com.android.application'

android {
    ...

    sourceSets {
        androidTest.setRoot('src/test')
    }
}


dependencies {
    ...

    // Testing
    compile project(':core')
    testCompile 'org.robolectric:robolectric:2.4'
    testCompile 'junit:junit:4.+'
    testCompile 'org.easytesting:fest:1.0.16'
    testCompile 'com.squareup:fest-android:1.0.8'
}

我的核心项目build.gradle:

apply plugin: 'java'

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    testCompile 'org.robolectric:robolectric:2.4'
}

我已经阅读了下面的内容,这里没有任何内容对我有用:

https://www.bignerdranch.com/blog/all-in-together-android-studio-gradle-and-robolectric/ - 将要使用的android studio插件在较新的Android studio版本上崩溃。

https://www.bignerdranch.com/blog/triumph-android-studio-1-2-sneaks-in-full-testing-support/ - 这根本无法解决问题。它无法找到org.junit。

https://discuss.gradle.org/t/why-cant-my-simplest-one-line-build-gradle-compile-tests-with-junit-jar/1868

有人能指出我正确的方向吗?为什么它无法从org.junit

中检测到build.gradle

2 个答案:

答案 0 :(得分:1)

您必须将构建变体测试工件设置为Unit Tests

enter image description here

我不再需要“核心”项目,所以我删除了它。我的app的build.gradle看起来像这样:

repositories {
    jcenter()
}

apply plugin: 'com.android.application'

android {
    ...
    sourceSets {
        androidTest.setRoot('src/test')
    }
}

dependencies {
    ...

    // Testing
    testCompile 'junit:junit:4.12'
    testCompile 'org.easytesting:fest:1.0.16'
    testCompile 'com.squareup:fest-android:1.0.8'
    testCompile('org.robolectric:robolectric:3.0-rc2') {
        exclude group: 'commons-logging', module: 'commons-logging'
        exclude group: 'org.apache.httpcomponents', module: 'httpclient'
    }
}

答案 1 :(得分:0)

最后一天我也面临着这个问题。我得到了解决方案。

该错误是由于您为测试类创建了java文件夹作为java文件夹,在android studio中出现蓝色。实际上您需要绿色 < / p>

对于测试,你只需要创建带有java名称的文件夹,其他一切都将由android studio本身完成。

用于删除java文件夹依赖项,您可以删除

  sourceSets {
    androidTest.setRoot('src/test')
}
来自build.gradle的

代码

然后一切都会正常工作