【问题标题】:Android gradle test with robolectric使用 robolectric 进行 Android gradle 测试
【发布时间】:2013-11-04 13:25:06
【问题描述】:

我正在使用 AndroidStudio 并使用 gradle 构建。

我想用 Robolectirc 测试我的应用程序,所以我在 build.gradle 中添加以下内容

buildscript 的依赖部分:

classpath 'com.squareup.gradle:gradle-android-test-plugin:0.9.+'

应用 android-test 插件:

apply plugin: 'android-test'

使用 testCompile 配置添加仅测试依赖项:

testCompile 'junit:junit:4.10'
testCompile 'org.robolectric:robolectric:2.1.+'
testCompile 'com.squareup:fest-android:1.0.+'

这些来自https://github.com/JakeWharton/gradle-android-test-plugin

所以我添加了这些东西,我得到了如下所示的 gradle.build。

buildscript {
repositories {
    mavenCentral()
}
dependencies {
    classpath 'com.android.tools.build:gradle:0.6.+'

    classpath 'com.squareup.gradle:gradle-android-test-plugin:0.9.+'
}
}

apply plugin: 'android'
apply plugin: 'android-test'

repositories {
mavenCentral()
}

android {
compileSdkVersion 17
buildToolsVersion "17.0.0"

defaultConfig {
    minSdkVersion 9
    targetSdkVersion 17
}

signingConfigs {
    freeConfing {
        storeFile file("../../../workspace_android/keystore/pm.keystore");
        storePassword "password"
        keyAlias "key"
        keyPassword "password"
    }
    paidConfing {
        storeFile file("../../../workspace_android/keystore/pm.keystore");
        storePassword "password"
        keyAlias "key"
        keyPassword "password"
    }
}

productFlavors {
            paid {
                packageName "com.my.app"
                buildConfig "public final static boolean isFullVersion = true;"
                versionCode 2
                versionName "1.0.0"
                signingConfig signingConfigs.paidConfing
            }
            free {
                packageName "com.my.app"
                buildConfig "public final static boolean isFullVersion = false;"
                versionCode 2
                versionName "1.0.0"
            signingConfig signingConfigs.freeConfing
            }
    }
}

dependencies {
    compile 'com.android.support:appcompat-v7:+'

    testCompile 'junit:junit:4.10'
    testCompile 'org.robolectric:robolectric:2.1.+'
    testCompile 'com.squareup:fest-android:1.0.+'
}

我想测试我的应用,所以我在终端中输入

gradle test

但是,我明白了

Could not determine the dependencies of task ':MyApp:testFreeDebug'.

产品风味名称已更改testFreeDebug

gradle tasks 也无法正常工作...

在我没有添加测试内容之前,它工作得很好。

如何使用 robolectric 测试我的应用?

【问题讨论】:

    标签: android unit-testing robolectric


    【解决方案1】:

    尝试使用插件的最新快照。

    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'
        }
    }
    

    【讨论】:

    • 也使用gradle check而不是gradle test
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多