java.lang.NoClassDefFoundError: Test Module could not resolve classes of other Feature Module, Unit Testing - Kotlin - Android
java.lang.NoClassDefFoundError: Test Module could not resolve classes of other Feature Module, Unit Testing - Kotlin - Android
我有以下项目结构:
Main App
--app
--featureModule1
--featureModule2
--TestKit(Library module)
其中 Testkit 具有所有依赖项,包括 app 和 featureModules。 Testkit 包含与应用程序和功能模块中的功能相关的所有单元测试。
当我 运行 从 Android 工作室进行单元测试时(右键单击 -> 运行 在 Testkit 中测试),他们 运行 很好。但是,每当我尝试从 gradle 命令 运行 中使用它时:./gradlew TestKit:testInternalDebugUnitTest
,它会为其他模块(对于应用程序和功能模块)的所有依赖项抛出 NoClassDefFoundError
。
此外,我已经在测试模块中添加了所有模块的实现和测试实现依赖项。
请推荐:
是否需要添加在其他模块中生成的类路径,如果是,请指导位置。
另外 运行ning 覆盖率测试失败
java.lang.VerifyError:错误 return 类型
请指出我做错了什么。
注:
我创建了一个 Testkit,因为 Roboelectric 在功能模块中存在多个未解决的问题,例如:https://github.com/robolectric/robolectric/issues/5428
版本
作为:4.0.1
gradle:4.0.1
gradle-包装纸:6.5
Robolectric: 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 中。
可参考以下link了解更多详情:https://github.com/android/app-bundle-samples/issues/11#issuecomment-675725610
我有以下项目结构:
Main App
--app
--featureModule1
--featureModule2
--TestKit(Library module)
其中 Testkit 具有所有依赖项,包括 app 和 featureModules。 Testkit 包含与应用程序和功能模块中的功能相关的所有单元测试。
当我 运行 从 Android 工作室进行单元测试时(右键单击 -> 运行 在 Testkit 中测试),他们 运行 很好。但是,每当我尝试从 gradle 命令 运行 中使用它时:./gradlew TestKit:testInternalDebugUnitTest
,它会为其他模块(对于应用程序和功能模块)的所有依赖项抛出 NoClassDefFoundError
。
此外,我已经在测试模块中添加了所有模块的实现和测试实现依赖项。
请推荐:
是否需要添加在其他模块中生成的类路径,如果是,请指导位置。
另外 运行ning 覆盖率测试失败
java.lang.VerifyError:错误 return 类型
请指出我做错了什么。
注: 我创建了一个 Testkit,因为 Roboelectric 在功能模块中存在多个未解决的问题,例如:https://github.com/robolectric/robolectric/issues/5428
版本 作为:4.0.1 gradle:4.0.1 gradle-包装纸:6.5 Robolectric: 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 中。
可参考以下link了解更多详情:https://github.com/android/app-bundle-samples/issues/11#issuecomment-675725610