使用Gradle设置单元测试时出错

时间:2013-11-27 05:43:36

标签: android gradle

我正在尝试按照本教程设置Android单元测试:http://www.peterfriese.de/android-testing-with-robolectric/

但后来我意识到我对构建系统知之甚少,无法理解究竟发生了什么。

所以我对下面的build.gradle部分提出了一些问题

buildscript {
    repositories {
        mavenCentral()
        maven {
            url 'https://oss.sonatype.org/content/repositories/snapshots/'
        }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.6.+'
        classpath 'com.squareup.gradle:gradle-android-test-plugin:0.9.1-SNAPSHOT'
    }
}

dependencies {
    compile 'com.android.support:appcompat-v7:+'

    testCompile 'junit:junit:4.10'
    testCompile 'org.robolectric:robolectric:2.3-SNAPSHOT'
    testCompile 'com.squareup:fest-android:1.0.+'
    instrumentTestCompile 'junit:junit:4.10'
    instrumentTestCompile 'org.robolectric:robolectric:2.3-SNAPSHOT'
    instrumentTestCompile 'com.squareup:fest-android:1.0.+'
}

当我classpath 'com.squareup.gradle:gradle-android-test-plugin:0.9.1-SNAPSHOT'时,Gradle如何知道com.squareup.gradle的位置?

此外,现在,我收到一条错误消息,说Gradle无法找到Robolectric库org.robolectric:robolectric:2.3-SNAPSHOT。是我必须手动添加还是构建系统应该以某种方式自动处理它?<​​/ p>

1 个答案:

答案 0 :(得分:1)

Gradle将从配置的存储库中找到com.squareup.gradle - 因为它在Maven Central中不存在,它将查看Sonatype存储库并在那里找到它。

Robolectric库应该可供Gradle使用,因为访问快照存储库URL会手动显示它在那里。您可以将早期版本缓存:将存储库标记为“更改”,刷新依赖关系,或简单地rm -rf .gradle/caches以强制Gradle再次查看。有关详情,请参阅此答案:How can I force gradle to redownload dependencies?