我最近在玩 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/