如何防止 Android gradle 从 运行 设备测试构建为单元测试
How to prevent Android gradle build from running device tests as unit-tests
我正在将我的 Android 项目 loopback-sdk-android 从 Android Gradle Build Tools 0.9 升级到 1.1。就 IDE 而言,迁移很顺利,我可以在模拟器上编译项目和 运行 设备测试。
但是,命令行构建已损坏。当我 运行 ./gradlew build
(或 ./gradlew test
)时,构建工具错误地从 src/androidTest/java
中提取文件作为单元测试文件,并且构建失败并出现一堆 NoClassDefFoundError。
com.strongloop.android.loopback.test.AsyncTestCase > initializationError FAILED
java.lang.NoClassDefFoundError
Caused by: java.lang.ClassNotFoundException
./gradlew connectedAndroidTest
工作正常,运行 在模拟器上进行来自 src/androidTest/java
的测试。
如何配置 gradle 构建,使其不会 运行 设备测试作为纯单元测试?
解决方案:升级构建文件后删除旧的构建工件。
./gradlew clean
为了后代,这里有一个简短的片段向我确认构建正确地获取了源文件:
android {
sourceSets {
logger.info("androidTest java srcdirs");
androidTest.java.srcDirs.each { d -> logger.info("\t" + d) }
logger.info("test java srcdirs");
test.java.srcDirs.each { d -> logger.info("\t" + d) }
}
}
./gradlew --info test
产生了以下结果:
androidTest java srcdirs
~/src/loopback/android/src/androidTest/java
test java srcdirs
~/src/loopback/android/src/test/java
打开你的文件build.gradle(模块:app)
在 android 中评论您的测试编译{}
//testInstrumentationRunner"android.support.test.runner.AndroidJUnitRunner"
我正在将我的 Android 项目 loopback-sdk-android 从 Android Gradle Build Tools 0.9 升级到 1.1。就 IDE 而言,迁移很顺利,我可以在模拟器上编译项目和 运行 设备测试。
但是,命令行构建已损坏。当我 运行 ./gradlew build
(或 ./gradlew test
)时,构建工具错误地从 src/androidTest/java
中提取文件作为单元测试文件,并且构建失败并出现一堆 NoClassDefFoundError。
com.strongloop.android.loopback.test.AsyncTestCase > initializationError FAILED
java.lang.NoClassDefFoundError
Caused by: java.lang.ClassNotFoundException
./gradlew connectedAndroidTest
工作正常,运行 在模拟器上进行来自 src/androidTest/java
的测试。
如何配置 gradle 构建,使其不会 运行 设备测试作为纯单元测试?
解决方案:升级构建文件后删除旧的构建工件。
./gradlew clean
为了后代,这里有一个简短的片段向我确认构建正确地获取了源文件:
android {
sourceSets {
logger.info("androidTest java srcdirs");
androidTest.java.srcDirs.each { d -> logger.info("\t" + d) }
logger.info("test java srcdirs");
test.java.srcDirs.each { d -> logger.info("\t" + d) }
}
}
./gradlew --info test
产生了以下结果:
androidTest java srcdirs
~/src/loopback/android/src/androidTest/java
test java srcdirs
~/src/loopback/android/src/test/java
打开你的文件build.gradle(模块:app)
在 android 中评论您的测试编译{}
//testInstrumentationRunner"android.support.test.runner.AndroidJUnitRunner"