如何修复凌空测试编译

时间:2015-04-03 14:12:03

标签: android junit android-volley

我在项目中使用谷歌的volley库。我将其添加为模块,但在编译期间会出现以下错误。

Error

这是目录结构:

dir_structure

我尝试添加

// testing
testCompile 'org.robolectric:robolectric:2.4'
testCompile 'junit:junit:4.+'

到应用的build.gradle,但这没有帮助。

所以显而易见的问题是如何让它发挥作用?

更新

Volley的build.gradle

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

        // testing
        testCompile 'org.robolectric:robolectric:2.4'
        testCompile 'junit:junit:4.+'
    }
}

apply plugin: 'com.android.library'

android {
    compileSdkVersion 19
    buildToolsVersion = '21.1.0'
}

apply from: 'rules.gradle'

应用build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 22
    buildToolsVersion "19.1.0"

    defaultConfig {
        applicationId "com.example.vjdhama.project"
        minSdkVersion 15
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'),     'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.0.0'

    compile project(":volley")
}

错误

/home/vjdhama/Documents/Coding/Android/project/volley/build.gradle
Error:Error:line (18)Gradle DSL method not found: 'testCompile()'
Possible causes:<ul><li>The project 'project' may be using a version of Gradle that does not contain the method.
<a href="openGradleSettings">Gradle settings</a></li><li>The build file may be missing a Gradle plugin.
<a href="apply.gradle.plugin">Apply Gradle plugin</a></li>

1 个答案:

答案 0 :(得分:0)

+1同样的问题。我似乎仍然在我的更大的android项目中使用该库,但测试不会运行。似乎最新版本的Volley已经破坏了build.gradle中的依赖项。不是答案,因为它似乎不起作用,但也许你会比我更幸运。

添加

dependencies {
    testCompile 'org.robolectric:robolectric:2.3'
    testCompile 'junit:junit:4.11'
    testCompile 'org.mockito:mockito-core:1.9.5'
}

在volley的build.gradle文件的底部,我可以让运行失败所有测试而不是失败的构建。这是我想的。

来自凌空的完整build.gradle:

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

apply plugin: 'com.android.library'

android {
    compileSdkVersion 22
    buildToolsVersion = '22.0.1'
}

apply from: 'rules.gradle'

dependencies {
    testCompile 'org.robolectric:robolectric:2.3'
    testCompile 'junit:junit:4.11'
    testCompile 'org.mockito:mockito-core:1.9.5'
}