【发布时间】:2019-11-08 01:04:22
【问题描述】:
我有一个使用 dynamic feature module 的项目,我想通过 gradle 任务在功能模块中运行我的单元测试(出于我的 CI 目的):
./gradlew :feature_product:test
但对于依赖于基础模块中的类的测试,它总是给我NoClassDefFoundError:
com.example.android.feature.product.ProductViewTest > on vote change to negative FAILED
java.lang.NoClassDefFoundError: app.BaseView
功能模块中的ProductView 类扩展了基础模块中的BaseView。
奇怪的是,在 Android Studio 中运行成功,运行良好。
然后,当我通过命令行运行和运行 Android Studio 时,我注意到日志中有一些不同之处。 Android Studio 中的第一行是generateDebugSources,在我运行./gradlew test 时没有出现
Executing tasks: [:lib_ui:generateDebugSources, ...]
我该如何解决这个问题?当我按下 Ctrl+Shift+R 时,Android Studio 是否与提供的命令./gradlew test 有不同的命令?
【问题讨论】:
-
我遇到了完全相同的问题。在我的情况下,
dynamic-feature-module测试无法从application-module中找到任何类。 -
我也遇到了同样的问题,你们解决了吗?
-
我设法通过在我的基本模块中不调用任何东西来使用 gradle 运行单元测试
标签: android unit-testing android-studio gradle junit