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 - adding a test dependency on another project's tests
- How to run unit tests with dependency to an Android library module?
- Gradle Android unit tests that depend on an 'aar'
- Multi-project test dependencies with gradle
- Android Studio module that depends on another module's tests
这些问题要么是陈旧的,不是专注于使用 Android Gradle 1.1+ 内置的单元测试能力,要么不是那么相关。
我要问的是:“如何编译 [java?] 单元测试在同一个项目中导入另一个 android 模块(通常是 .aar 文件) ?"
A "testCompile project(':module1')" 似乎没用。
我怀疑我想要:
- 将我依赖的另一个模块编译为.jar文件
- 使用其他模块已经编译的 .class 文件
- 从其他模块的 .aar 文件中提取 .class 文件
- 找到一些其他内置的方法来做到这一点
在 Android/Gradle 构建过程中是否有巧妙的方法来执行此操作?
我是不是漏掉了什么明显的东西?
谢谢!
PV
秘诀是在 AndroidManifest.xml
旁边放置 project.properties
和 test-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 但仍然)
我有一个 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 - adding a test dependency on another project's tests
- How to run unit tests with dependency to an Android library module?
- Gradle Android unit tests that depend on an 'aar'
- Multi-project test dependencies with gradle
- Android Studio module that depends on another module's tests
这些问题要么是陈旧的,不是专注于使用 Android Gradle 1.1+ 内置的单元测试能力,要么不是那么相关。
我要问的是:“如何编译 [java?] 单元测试在同一个项目中导入另一个 android 模块(通常是 .aar 文件) ?"
A "testCompile project(':module1')" 似乎没用。
我怀疑我想要:
- 将我依赖的另一个模块编译为.jar文件
- 使用其他模块已经编译的 .class 文件
- 从其他模块的 .aar 文件中提取 .class 文件
- 找到一些其他内置的方法来做到这一点
在 Android/Gradle 构建过程中是否有巧妙的方法来执行此操作?
我是不是漏掉了什么明显的东西?
谢谢!
PV
秘诀是在 AndroidManifest.xml
旁边放置project.properties
和 test-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 但仍然)