首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >multimdule项目中的共享测试类

multimdule项目中的共享测试类
EN

Stack Overflow用户
提问于 2021-05-04 18:28:53
回答 1查看 93关注 0票数 0

我有一个应用程序开发在干净的架构与多个模块。请考虑下面的包结构。

代码语言:javascript
复制
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文件的代码:

应用程序:

代码语言:javascript
复制
dependencies{
    testImplementation project(':common-test')
}

数据:

代码语言:javascript
复制
plugins{
id 'java-library'
id 'kotlin'
}
dependencies{
testImplemenation project(path:':common-test',configuration:'default')
}

common-test:

代码语言:javascript
复制
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)到数据模块的测试文件夹中,尽管它在编译时从通用测试中导入了正确的类。它抛出的错误是“未解析的引用”,请告诉我遗漏的是什么?

EN

回答 1

Stack Overflow用户

发布于 2021-05-08 21:21:15

根据我的经验,我还没能成功地创建一个aar (android库)用于测试目的,这可能是你这里的主要问题。android库(aar)和java库(jar)之间存在单向兼容性。您可以将aar包含到aar中,但您不能反过来做这件事。

如果你的测试不需要aar (基本上你不需要任何与android资源相关的东西),我建议你把测试库改成java插件。如果你需要对Android类的引用,你总是可以导入android的源代码,就像robolectric做here一样。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67383020

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档