【问题标题】:How do I get Gradle for Android to find a library's test code from within other test code?如何让 Gradle for Android 从其他测试代码中查找库的测试代码?
【发布时间】:2015-01-08 15:00:39
【问题描述】:

我有一个 Android 应用程序,它下面有两个库层。每个库都有自己的测试代码。想用上层库的测试代码扩展下层库的测试代码,但是不知道怎么让Gradle找到下层库的测试代码(只能找到生产代码)。

我的文件结构如下:

myproject/
 + myapp/
   + src/
     + main/
       + java
         + com/myapp
 + lib1/
   + src/
     + main/
       + java
         + com/myapp/lib1
     + androidTest
       + java
         + com/myapp/lib1/test
 + lib2/
   + src/
     + main/
       + java
         + com/myapp/lib2
     + androidTest
       + java
         + com/myapp/lib2/test

应用程序的 gradle 文件如下所示:

apply plugin: 'com.android.application'
android { ... }
dependencies {
  compile project(':lib2')
} 

lib2 的 gradle 文件如下所示:

apply plugin: 'com.android.library'
android { ... }
dependencies {
  compile project(':lib1')
} 

lib1 的 gradle 文件如下所示:

apply plugin: 'com.android.library'
android { ... }

当我运行“gradle connectedCheck”时,我得到了这个:

...
:lib2:generateDebugTestSources UP-TO-DATE
:lib2:compileDebugTestJava
myproject/lib2/src/androidTest/java/com/myapp/lib2/test/SubClass.java:10: error: package com.myapp.lib1.test does not exist
import com.myapp.lib1.test.BaseClass;

我尝试将各种 androidTestCompile 行添加到 lib2 的 gradle 文件的依赖项部分,但它们都没有帮助。

有人知道怎么做吗?

编辑: 抱歉,我没有提到我的 myproject 文件夹中还有一个 settings.gradle,如下所示:

include ':lib1'
include ':lib2'
include ':myapp'

【问题讨论】:

    标签: android gradle android-gradle-plugin android-library android-testing


    【解决方案1】:

    问题是你的 gradle 不知道 myapp、lib1 和 lib2 模块的连接。

    尝试在正在使用另一个模块的模块中添加一些 settings.gradle。对于您的结构,我建议在 root 中制作额外的 gradle 文件:

    例如在 myproject/中

    settings.gradle:

    rootProject.name = 'myproject'
    include 'myapp'
    include 'lib1'
    include 'lib2'
    

    然后为所有模块编写 gradle.build 以阐明所有项目的类型,例如 ear 等。

    您也可以单独连接模块。

    【讨论】:

    • 谢谢。我编辑了我的问题以添加我的 settings.gradle,它确实包含模块,尽管我没有指定项目名称。那很重要吗?另外,我不明白您关于澄清项目类型以及如何连接模块的意思。目前唯一的联系是编译语句中对库模块的引用。
    • 澄清项目的类型
    猜你喜欢
    • 1970-01-01
    • 2012-05-24
    • 2014-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-21
    • 1970-01-01
    • 2014-02-14
    相关资源
    最近更新 更多