如何使用gradle-android-test-plugin

时间:2013-08-19 06:52:27

标签: android gradle android-studio robolectric

我想让Robolectric与Android Studio合作,并在审核了[问题] [2]的答案之后尝试使用[gradle-android-test-plugin] [1],但我没有运气。

  1. 我创建了一个全新的Android项目,并将其命名为MyApp。
  2. 我按照自述文件“使用”部分中的所有说明进行操作。
  3. 我还没有在我的新项目中测试任何代码,所以我从
  4. 复制了这些类(包括`RobolectricGradleTestRunner`)
    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的评论指出的那样)。

3 个答案:

答案 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命令来执行测试