使用Gradle Android构建系统指定测试依赖项

pas*_*ssy 28 android gradle android-studio

我想为我的测试指定依赖关系,并在阅读Gradle依赖关系管理基础之后我虽然可以添加testCompile对我的依赖声明的调用,如下所示:

dependencies {
    compile group: 'com.squareup.dagger', name: 'dagger', version: '1.0.0'


    testCompile group: 'junit', name: 'junit', version: '4.11'
    testCompile group: 'com.squareup', name: 'fest-android', version: '1.0.1'
}
Run Code Online (Sandbox Code Playgroud)

但是,这会出现此错误消息:

> Could not find method testCompile() for arguments [{group=junit, name=junit, version=4.11}] on project ':simstatus'.
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么吗?

(完整的gradle构建文件供参考)

JB *_*zet 42

android构建系统不使用标准的Gradle Java插件.

它的文件说:

如前所述,主要的sourceSet旁边是androidTest sourceSet,默认位于src/androidTest /

此外,sourceSet可以配置为具有自己的依赖项.默认情况下,应用程序及其自身的依赖项将添加到测试应用程序类路径中,但可以使用此扩展

dependencies {
    androidTestCompile 'com.google.guava:guava:11.0.2'
}
Run Code Online (Sandbox Code Playgroud)

更新

随着2017年5月的文件,testCompile已被废弃,你应该使用testImplementation

dependencies {
        androidTestImplementation 'com.google.guava:guava:11.0.2'
}
Run Code Online (Sandbox Code Playgroud)

  • 这是对的.我们为本地jUnit测试保持"测试"(作为源集或依赖范围)(例如使用Robolectric) (9认同)