使用Robolectric运行JUnit测试时出现Gradle和Android Studio问题

时间:2015-04-11 23:50:04

标签: android android-studio gradle

应用程序的build.gradle是:

    apply plugin: 'com.android.application'

    android {
        compileSdkVersion 22
        buildToolsVersion "22.0.0"

    defaultConfig {
        applicationId "myapp.robolectricexample2"
        minSdkVersion 14
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

    dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:22.0.0'
    compile 'org.robolectric:robolectric:3.0-rc2'
    compile 'junit:junit:4.12'
}

所以,我收到以下错误:

  

错误:Gradle:任务':app:dexDebug'执行失败。 >   com.android.ide.common.process.ProcessException:   org.gradle.process.internal.ExecException:进程'命令   ' C:\ Program Files \ Java \ jdk1.8.0_31 \ bin \ java.exe''完成了   非零退出值2

2 个答案:

答案 0 :(得分:0)

试试这个build.gradle

android {
    apply plugin: 'com.android.application'

    android {
        compileSdkVersion 22
        buildToolsVersion "22.0.1" // <-- was 22.0.0

    defaultConfig {
        applicationId "myapp.robolectricexample2"
        minSdkVersion 14
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile 'com.android.support:appcompat-v7:22.1.1' // <-- was 22.0.0
    testCompile 'junit:junit:4.12'
    testCompile 'org.robolectric:robolectric:3.0-rc2'
}

现在您可以运行 gradlew testDebug

将测试置于 src/test

答案 1 :(得分:0)

我也有这个问题。就我而言,我发现原因是我将测试文件放在错误的目录中。

我的旧项目结构是:

app
|-src
|  |- main
|  |- androidTest <- I put here.
|  |- test <- The test files should be put here.
|-build 

我将测试文件移动到android默认单元测试目录src / test / java,然后问题解决了。