我想让 Robolectric 与 Android Studio 一起工作,并在查看此 [question][2] 的答案后尝试使用 [gradle-android-test-plugin][1],但没有运气。
- 我创建了一个全新的 Android 项目并将其命名为 MyApp。
- 我遵循了 README 的“使用”部分中的所有说明。
- 我还没有任何代码可以在我的新项目中进行测试,所以我从
gradle-android-test-plugin/example/src/test/java/com/example
和
gradle-android-test-plugin/example/src/main/java/com/example
目录到我的新 MyApp 项目中的相应文件路径中。
我以前从未为 Android 实施过单元测试,也不知道下一步该做什么。./gradlew install
我在插件的根目录中成功运行,但是在我的新项目的根目录中执行相同的操作没有任何效果。它引发了这样的抱怨:
Task 'install' is ambiguous in root project 'MyApp'. Candidates are: 'installDebug', 'installTest'.
我对 Gradle 一点也不熟悉,所以没有阅读 Gradle 本身的教科书,我不知道如何解决这个问题。
如果我进入包含AndroidManifest.xml
并尝试../gradlew clean check
构建和运行测试的 MyApp 目录,我会收到以下错误:
Could not determine the dependencies of task ':MyApp:testDebug'.
Android Studio 在查找我的依赖项时似乎没有任何问题。有人可以指出我运行测试的方向吗?我想这是一个简单的终端命令或插件自述文件中没有提到的东西。干杯!
编辑:
这是我的build.gradle
。我知道它在结构上与插件中包含的示例项目的结构不同,但该结构给了我相同的错误。
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.5.+'
classpath 'com.squareup.gradle:gradle-android-test-plugin:0.9.+'
}
}
apply plugin: 'android'
apply plugin: 'android-test'
repositories {
mavenCentral()
}
android {
compileSdkVersion 18
buildToolsVersion "18.0.1"
defaultConfig {
minSdkVersion 11
targetSdkVersion 18
}
}
dependencies {
compile 'com.android.support:support-v4:18.0.0'
testCompile 'junit:junit:4.11'
testCompile 'org.robolectric:robolectric:2.1.+'
testCompile 'com.squareup:fest-android:1.0.+'
}
编辑2:除了我发出了错误的命令(如 Ravindra 的回答所示)之外,我也没有意识到我的 Gradle 版本太新(正如 Jake 的评论指出的那样)。