我有一个应用程序开发在干净的架构与多个模块。请考虑下面的包结构。
app
src
|--> main
|--> test
|--> test classes that access shared test classes from common-test like mainCoroutineRue
data
src
|--> main
|--> test
|--> test classes that access shared test classes from common-test like FakeDispatcher
common-test
src
|--> main
|--> MainCorotineRule
|--> FakeDispatcher
|--> test下面是gradle文件的代码:
应用程序:
dependencies{
testImplementation project(':common-test')
}数据:
plugins{
id 'java-library'
id 'kotlin'
}
dependencies{
testImplemenation project(path:':common-test',configuration:'default')
}common-test:
plugins{
id 'com.android.library'
id 'kotlin-android'
}
dependecies{
implementation "androidx.arch.core:core-testing:1.1.1"
//test classes
//implementation junit
//impementation coroutine-test
//mockk
}现在的问题是,我能够成功地访问像MainCoroutineRule这样的类,在apps内部测试类,但是当我运行测试时,我不能从通用测试中访问类(即FakeDispatcher)到数据模块的测试文件夹中,尽管它在编译时从通用测试中导入了正确的类。它抛出的错误是“未解析的引用”,请告诉我遗漏的是什么?
发布于 2021-05-08 21:21:15
根据我的经验,我还没能成功地创建一个aar (android库)用于测试目的,这可能是你这里的主要问题。android库(aar)和java库(jar)之间存在单向兼容性。您可以将aar包含到aar中,但您不能反过来做这件事。
如果你的测试不需要aar (基本上你不需要任何与android资源相关的东西),我建议你把测试库改成java插件。如果你需要对Android类的引用,你总是可以导入android的源代码,就像robolectric做here一样。
https://stackoverflow.com/questions/67383020
复制相似问题