目前,我的android项目正在使用gradle插件1.2.3版本。我能够使用gradle命令“./gradlew clean connectedProductionAndroidTest”成功运行单元测试(android测试),其中“Production”是一种风格。从1.2.3更新Android gradle插件 - > 1.5.0 =单元测试中断
但是,当我将我的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插件的代码。这是我的根 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”。请注意“生产”和“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"
}
}
感谢您的帮助! :) – Jon