我正在将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构建以使其不会将设备测试作为纯单元测试运行?
答案 0 :(得分:0)
解决方案:升级构建文件后删除旧的构建工件。
./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
答案 1 :(得分:0)
打开文件build.gradle(Module:app)
评论您在android中的测试编译{}
// testInstrumentationRunner“ android.support.test.runner.AndroidJUnitRunner”