当前位置: 首页 > 知识库问答 >
问题:

Android Gradle 1.1模块单元测试依赖于同一项目中的另一个Android模块

红富
2023-03-14

我有一个Android Gradle 1.1项目,其中有几个模块对其他模块有一些依赖性。

Project
├ Module2
│ ├ src/main: imports classes from Module1
│ └ src/test: imports classes from Module1, tests Module2/src/main
└ Module1
  ├ src/main: implements classes needed by Module2/src/main & Module2/src/test
  └ src/test: tests Module1/src/main

我的模块本身编译得很好。
我的问题与测试模块有关。(仅供参考:我正在使用Robolectra)

我见过几个与Android构建相关的“类似”问题

  • Android Gradle 1.1-添加对另一个项目测试的测试依赖性
  • 如何运行依赖于Android库模块的单元测试
  • Gradle Android单元测试依赖于“aar”
  • 具有gradle的多项目测试依赖关系
  • Jacoco和单元测试android gradle插件的代码覆盖率

这些问题要么是老问题,要么不是集中在使用Android Gradle 1.1内置的单元测试能力上,要么不是真的那么相关。

我想问的是:“一个[java语言如何编译?]单元测试是否在同一项目中导入另一个android模块(通常为.aar文件)

“testCompile项目(':module1')”似乎不起作用。

我怀疑我想要么:

  1. 编译我所依赖的另一个模块为. jar文件
  2. 使用其他模块已经编译的. class文件
  3. 从其他模块的. aar文件中提取. class文件
  4. 找一些其他内置的方式来做到这一点

在Android/Gradle构建过程中是否有一种巧妙的方法来实现这一点?

我是不是漏掉了什么明显的东西?

谢谢

pv

共有2个答案

黄俊智
2023-03-14

如果测试中的模块依赖于纯Java /non-Android代码,另一种方法是提取一个新的java库模块(构建一个. jar而不是. aar)并依赖于此。在这种情况下,单元测试可以正常运行。

(可能对原始海报没有太大帮助,因为他们使用的是Robolectric,但仍然如此)

壤驷敏学
2023-03-14

秘密在于拥有项目。属性和测试项目。属性文件,位于AndroidManifest旁边。xml

测试项目中。属性插入所有分解的aar资源路径(例如,android.library.reference.3=../../build/intermediates/分解的aar/AndroidStudioAndRobolectric/core/unspecified

我会详细解释一下http://nenick-android.blogspot.de/2015/02/android-studio-110-beta-4-and.html一个现成的例子可以在https://github.com/nenick/AndroidStudioAndRobolectric/tree/library

 类似资料:
  • 我有一个多模块maven项目,包含三个模块、和 Core具有以下依赖项定义 我已经为所有三个模块添加了Java9定义,的如下所示: 但是,我不知道如何让的测试类能够在测试执行期间看到类。当尝试测试运行时,找不到类。 如果向的添加需要My.Project.TestUtils;的: 然后在编译时,我得到一个错误,即找不到模块(大概是因为它只是作为测试依赖项引入的)。 在Java9模块化的世界中,如何处

  • 问题内容: 我试图在将其他模块作为依赖项的模块中进行单元测试控制器代码的单元化,但是还没有弄清楚如何正确模拟它们。 我正在使用Jasmine Framework,并使用Karma(Testacular)运行测试。 模块代码 规格代码 我得到的错误是Karma是“ no module af.widgets”,因此显然我没有对模块依赖项进行模拟。有什么提示吗? 问题答案: 如果要模拟声明一个或多个服务

  • 当运行命令(如 或 Maven无法解决我的一个模块对另一个模块的依赖关系。 [错误]无法在项目分析器上执行目标-app:无法解析项目的依赖项project_group:a:jar:0.1-snapshot:找不到项目project_group:b:jar:0.1-snapshot 项目结构如下:

  • 上面的匕首2.0当量是多少? 您可以在GitHub上看到我的项目及其单元测试。

  • 本文向大家介绍gradle 依赖于另一个Gradle项目,包括了gradle 依赖于另一个Gradle项目的使用技巧和注意事项,需要的朋友参考一下 示例 对于多项目gradle构建,有时可能需要依赖构建中的另一个项目。为此,请在项目的依赖项中输入以下内容: ':OtherProject'从目录结构的根引用的项目gradle路径在哪里。 为了':OtherProject'在build.gradle文

  • 我面临着以下问题。我有两个Gradle项目(ProjectA和ProjectB)在同一个层次结构上,没有任何根项目。由于ProjectA依赖于ProjectB,我尝试将其建模如下: ProjectA的settings.gradle: ProjectA的build.gradle: 然而,当我在ProjectA上执行gradle build时,我得到了以下错误: 我必须在ProjectB中定义某种默认