如何解决java.lang.NoClassDefFoundError:测试模块无法解析其他功能模块的类,单元测试-Kotlin-Android
我具有以下项目结构:
Main App
--app
--featureModule1
--featureModule2
--TestKit(Library module)
其中Testkit具有所有依赖项,包括app和featureModules。该测试包包括与应用程序和功能模块中的功能相关的所有单元测试。
当我从Android Studio运行单元测试时(右键单击->在Testkit中运行测试),它们运行良好。但是,每当我尝试从gradle命令./gradlew TestKit:testInternalDebugUnitTest
运行它时,它都会对其他模块的所有依赖项(对于应用程序和功能模块)都抛出NoClassDefFoundError
。
我已经在测试模块中添加了所有模块的实现和testImplementation依赖项。
请建议:
-
我是否需要添加在其他模块中生成的类的路径,如果可以的话,请在哪里指导。
-
使用Coverage运行测试失败
java.lang.VerifyError:错误的返回类型
请在这里提出我的错事。
注意: 由于Roboelectric在以下功能模块中存在多个开放问题,例如https://github.com/robolectric/robolectric/issues/5428
,因此我创建了一个Testkit版本 AS:4.0.1 gradle:4.0.1 gradle-wrapper:6.5 机器人:4.3.1
解决方法
我能够使用以下运行时测试依赖项来解决该问题:
testRuntimeOnly(files("${projectDir}/../app/build/intermediates/app_classes/internalDebug/classes.jar"))
testRuntimeOnly(files("${projectDir}/../featureModule1/build/intermediates/app_classes/internalDebug/classes.jar"))
testRuntimeOnly(files("${projectDir}/../featureModule2/build/intermediates/app_classes/internalDebug/classes.jar"))
在Testkit的 build.gradle 内部。
有关更多详细信息,请参见以下链接:https://github.com/android/app-bundle-samples/issues/11#issuecomment-675725610
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。