我最近和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'
}
答案 0 :(得分:2)
默认情况下,运行connectedAndroidTest
任务时,build
任务不会运行。
默认情况下,运行check
任务时会运行build
任务。
您需要做的就是在connectedAndroidTest
任务运行时添加显式依赖项以运行check
任务:
check.dependsOn connectedAndroidTest