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

时间:2015-03-05 00:32:00

标签: android android-studio gradle android-gradle robolectric

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

我见过几个"类似的"与Android build& amp;测试依赖关系,但我找到的那些似乎没有问我在寻找什么:

这些问题也是旧的,不是专注于使用内置单元测试功能的Android Gradle 1.1+,或者不是真的那么相关。

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

A" testCompile项目(':module1')"似乎无法做到这一点。

我怀疑我想要:

  1. 将我依赖的其他模块编译为.jar文件
  2. 使用其他模块已编译的.class文件
  3. 从其他模块的.aar文件中提取.class文件
  4. 找一些其他内置的方法来做到这一点
  5. 是否有一种灵活的方法可以在Android / Gradle构建过程中内置它?

    我错过了一些明显的东西吗?

    谢谢!

    Pv的

2 个答案:

答案 0 :(得分:0)

秘诀是在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处对此进行了详细解释。可以在https://github.com/nenick/AndroidStudioAndRobolectric/tree/library找到一个随时可用的示例

答案 1 :(得分:0)

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

(可能对原始海报不那么有用,因为他们使用的是Robolectric但仍然如此)