我想让Robolectric与Android Studio合作,并在审核了[问题] [2]的答案之后尝试使用[gradle-android-test-plugin] [1],但我没有运气。
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
的MyApp目录并尝试 ../gradlew clean check
来构建并运行测试,我会收到此错误:
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.+'
}
EDIT2: 除了我发出错误的命令(如Ravindra的答案中所示)之外,我也没有意识到我的Gradle版本太新了(正如Jake的评论指出的那样)。
答案 0 :(得分:2)
从主项目文件夹
运行的可用任务列表gradle tasks
进行测试
gradle tests
答案 1 :(得分:2)
没有安装任务,但有两个以安装为前缀的任务。您必须提供完整的任务名称,或至少足以让Gradle找出您正在谈论的那个(例如,installD,iD或完整的installDebug将起作用)
https://github.com/square/gradle-android-test-plugin/issues/6#issuecomment-22881923
答案 2 :(得分:0)
从插件的代码中,似乎你应该运行./gradlew test
命令来执行测试