【发布时间】:2015-12-09 01:37:49
【问题描述】:
目前,我的android项目使用的是gradle插件版本1.2.3。我能够使用 gradle 命令“./gradlew clean connectedProductionAndroidTest”成功运行单元测试(android 测试),其中“Production”是一种风格。
但是,当我将 gradle 插件更新到 1.5.0 时,出现以下错误。
17:35:16 Tests on Android SDK built for x86 - 4.2 failed: Instrumentation run failed due to 'java.lang.IllegalAccessError'
17:35:16
17:35:16 com.android.builder.testing.ConnectedDevice > No tests found.[Android SDK built for x86 - 4.2] [31mFAILED [0m
17:35:16 No tests found. This usually means that your test classes are not in the form that your test runner expects (e.g. don't inherit from TestCase or lack @Test annotations).
当我更新 gradle 插件时,我没有对目录结构和我的任何测试进行任何更改。
这是我用来更新 gradle 插件的代码。这是在我的 root build.gradle 文件中。
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.5.0'
}
}
我只是想知道这两个版本之间是否有任何变化可能导致我的测试失败?
请注意,我已按照文档中的说明将测试放在“$ROOT/app/src/androidTest/java/...”中。此外,在 gradle 1.2.3 中,我不得不使用命令“./gradlew clean connectedProductionAndroidTest”,但在插件版本 1.5.0 中,情况似乎发生了变化。我现在必须做:“./gradlew clean connectedAndroidTestProduction”。注意“Production”和“AndroidTest”的交换。
任何帮助将不胜感激。
编辑:
这是我应用的 build.gradle 文件
apply plugin: 'com.android.application'
android {
compileSdkVersion rootProject.compileSdkVersion
buildToolsVersion rootProject.buildToolsVersion
lintOptions {
disable 'OldTargetApi'
abortOnError false
}
defaultConfig {
applicationId "com.myapp"
minSdkVersion rootProject.minSdkVersion
targetSdkVersion rootProject.targetSdkVersion
versionCode rootProject.getVersionCode()
versionName rootProject.getVersionName()
testApplicationId "com.myapp.test"
testInstrumentationRunner "com.android.test.runner.MultiDexTestRunner"
}
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFiles 'proguard.cfg'
signingConfig signingConfigs.release
multiDexEnabled false
}
debug {
debuggable true
testCoverageEnabled true
signingConfig signingConfigs.release
multiDexEnabled true
}
}
productFlavors {
production {
}
}
dexOptions {
javaMaxHeapSize "4g"
}
}
【问题讨论】:
标签: android unit-testing gradle android-testing