java.lang.NoClassDefFoundError:测试模块无法解析其他功能模块的类,单元测试-Kotlin-



我有以下项目结构:

Main App
--app
--featureModule1
--featureModule2
--TestKit(Library module)

其中Testkit具有所有依赖项,包括应用程序和featureModules。测试套件包含了与应用程序和功能模块中的功能相关的所有单元测试。

当我从Android工作室运行单元测试时(右键单击->在Testkit中运行测试(,它们运行得很好。然而,每当我尝试从gradle命令./gradlew TestKit:testInternalDebugUnitTest运行它时,它就会为其他模块(应用程序和功能模块(的所有依赖项抛出NoClassDefFoundError

此外,我已经添加了测试模块中所有模块的实现和testImplementation依赖项。

请建议:

  1. 我是否需要添加在其他模块中生成的类的路径,如果需要,请指导在哪里。

  2. 同时运行覆盖率测试在中失败

    java.lang.VerifyError:错误的返回类型

请说明我做错了什么

注意:我创建了一个测试套件,因为Roboelectric在功能模块中存在多个开放问题,例如:https://github.com/robolectric/robolectric/issues/5428

版本AS:4.0.1坡度:4.0.1gradle包装: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

最新更新