android - 如何使用 gradle-android-test-plugin

标签 android gradle android-studio robolectric

我想让 Robolectric 与 Android Studio 一起工作,并在查看此 [问题][2] 的答案后尝试使用 [gradle-android-test-plugin][1],但我没有运气。

  1. 我创建了一个全新的 Android 项目并将其命名为 MyApp。
  2. 我遵循了自述文件“使用”部分中的所有说明。
  3. 我还没有任何代码可以在我的新项目中进行测试,所以我从
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.+'
}

编辑2: 除了我发出了错误的命令这一事实(如 Ravindra 的回答所示),我也没有意识到我的 Gradle 版本太新了(正如 Jake 的评论所指出的)。

最佳答案

没有安装任务,但有两个任务以安装为前缀。您必须提供完整的任务名称或至少足以让 Gradle 确定您正在谈论的是哪一个(例如,installD、iD 或完整的 installDebug 将起作用)

https://github.com/square/gradle-android-test-plugin/issues/6#issuecomment-22881923

关于android - 如何使用 gradle-android-test-plugin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18307955/

相关文章:

android - Last Modified 或 IfModifiedSince Android SQL HTTP

java - 如何使用 okhttp 执行 Reddit 帖子

android - Gradle 3.0 "compile"到 "implementation"迁移不适用于 fileTree

android - 文件或目录 '<project>/<app>/src/debug/java' ,未找到

Android Studio-未使用的import-com.google.android.gcm.GCMBaseIntentService;

android - 如何在 Studio 项目中禁用 Jacoco 测试覆盖率

android-studio - 无法使用 Android Studio 播放 YouTube 视频

java - 如何以静态和非静态方式使用枚举

android - Gradle 构建过程失败

android - 无法解析配置 ':ZBarScannerActivityLib:classpath' 的所有依赖项