android - Gradle Clean Build 和连接AndroidTest

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

我最近在玩 Android 版的 Gradle...它很强大,但同时也很痛苦。

最初,我遵循 Robolectric 示例项目,尝试制作一个基于 gradle 并支持 Robolectric 测试的 Android 项目。一段时间后,我意识到 Robolectric 甚至不支持 API 19。因此,我将其从 build.gradle 中删除,并尝试使用 Junit 和 Instrumentation 测试。

我对 Android、Gradle 或 Roboletric 都不熟悉。我只知道在删除 Robolectirc 之前,每当我进行构建时 ./gradlew clean build我能够运行所有测试。但现在,我必须调用./gradlew connectedAndroidTest除了运行测试外,同时 build命令仅调用 check但没有运行测试,因此始终显示成功

我已在此处附上我的配置:

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

最佳答案

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

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

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

check.dependsOn connectedAndroidTest

关于android - Gradle Clean Build 和连接AndroidTest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24780793/

相关文章:

java - XML 解析 - 空对象引用 - Android

java - Android:如何从对象名称可能更改的 JSON 响应中检索多个 JSON 对象?

android - Home 进程重启后解耦的 AppWidget Intents

android - 如何在android模块上运行单元测试?

java.lang.NoSuchMethodError : No static method zzb(ZLjava/lang/Object;)V in class Lcom/google/android/gms/common/internal/zzaa; or its super classes 错误

android - 使用 Robolectric 2 时为 RoboGuice 添加测试模块

robolectric - Robolectric 测试中的卡住时间

java - 重复的 zip 条目 [241.jar :android/support/design/widget/CoordinatorLayout$Behavior. 类]

android - 在 Android Studio 中为 android 应用程序设置开发和生产环境

android - RobolectricTestRunner 如何创建 Robolectric.application?