在多模块android项目中共享测试类



我有一个在干净架构中开发的带有多个模块的应用程序。考虑以下封装结构。

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

以下是渐变文件代码:

应用程序:

dependencies{
testImplementation project(':common-test')
}

数据:

plugins{
id 'java-library'
id 'kotlin'
}
dependencies{
testImplemenation project(path:':common-test',configuration:'default')
}

常见测试:

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等类,但在我运行测试时,我无法从公共测试中将类(即FakeDispatcher(访问到数据模块的测试文件夹中,尽管编译时它从公共测试中导入了正确的类。它抛出的错误是";未解析引用";请告诉我小姐是什么?

根据我的经验,我无法成功创建用于测试目的的aar(android库(,这可能是您在这里的主要问题。android库(aar(与java库(jar(之间存在单向兼容性。你可以把罐子放进aar里,但不能反过来做。

如果你的测试不需要aar(基本上你不需要任何与android资源相关的东西(,我建议你将测试库更改为java插件。如果你需要Android类的参考,你可以随时导入Android的源代码,类似于roboelectric在这里做的

相关内容

  • 没有找到相关文章

最新更新