我正在尝试按照本教程设置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>
答案 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?