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

Android Gradle 1.1 Module Unit Test dependency on another Android Module in same Project

我有一个 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

我的模块本身可以正常编译。
我的问题与测试模块有关。 (仅供参考:我正在使用 Robolectric)

我已经看到几个 "similar" 与 Android 构建和测试依赖项相关的问题,但是 none 我发现的问题似乎在问我在寻找什么:

这些问题要么是陈旧的,不是专注于使用 Android Gradle 1.1+ 内置的单元测试能力,要么不是那么相关。

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

A "testCompile project(':module1')" 似乎没用。

我怀疑我想要:

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

在 Android/Gradle 构建过程中是否有巧妙的方法来执行此操作?

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

谢谢!

PV

秘诀是在 AndroidManifest.xml

旁边放置 project.propertiestest-project.properties 文件

test-project.properties 处插入所有展开的 aar 资源路径(例如 android.library.reference.3=../../build/intermediates/exploded-aar/AndroidStudioAndRobolectric/core/unspecified

我在 http://nenick-android.blogspot.de/2015/02/android-studio-110-beta-4-and.html And a ready to use example can be found at https://github.com/nenick/AndroidStudioAndRobolectric/tree/library

对此做了更多解释

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

(可能对原始发帖者没有太大帮助,因为他们正在使用 Robolectric 但仍然)