Gradle Clean Build和connectedAndroidTest

时间:2014-07-16 12:27:49

标签: android android-gradle robolectric build.gradle robolectric-gradle-plugin

我最近和Gradle for Android一起玩......它既强大又痛苦。

最初,我遵循Roboletric示例项目,尝试使用Robolectric测试支持制作基于gradle的Android项目。过了一会儿,我意识到Robolectric甚至不支持API 19.因此,我从build.gradle中删除它并尝试使用Junit和Instrumentation测试。

我不熟悉Android或Gradle或Roboletric。我只知道在删除Robolectirc之前,每当我进行构建./gradlew clean build时,我都可以运行所有测试。但是现在,除了运行测试之外我还必须调用./gradlew connectedAndroidTest,而build命令只调用check但是没有运行测试,因此总是显示SUCCESSFUL

我已将配置附加到此处:

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

repositories {
    mavenCentral()
}

android {
    compileSdkVersion 19
    buildToolsVersion '19.1.0'

    defaultConfig {
        minSdkVersion 9
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
        packageName "com.example"
        testPackageName "com.example.tests"
    }

    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }

    productFlavors {
        flavorDimensions "AppPackage", "AppEnvironment"

        appBasic {
            flavorDimension "AppPackage"
        }

        staging {
            flavorDimension "AppEnvironment"
        }
        production {
            flavorDimension "AppEnvironment"
        }
    }

    sourceSets {
        androidTest.setRoot('src/test')
        androidTestStaging.setRoot('src/testStaging')
        androidTestProduction.setRoot('src/testProduction')
    }

}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:support-v4:20.0.0'
    compile 'com.android.support:appcompat-v7:20.0.0'
}

1 个答案:

答案 0 :(得分:2)

默认情况下,运行connectedAndroidTest任务时,build任务不会运行。

默认情况下,运行check任务时会运行build任务。

您需要做的就是在connectedAndroidTest任务运行时添加显式依赖项以运行check任务:

check.dependsOn connectedAndroidTest