【问题标题】:How To Include Transitive Dependencies如何包含传递依赖
【发布时间】:2014-06-06 21:14:23
【问题描述】:

我有 2 个 gradle 项目:一个 Android 应用和一个 RoboSpock 测试。

我的 Android 应用的 build.gradle 有

. . .

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    compile ('com.actionbarsherlock:actionbarsherlock:4.4.0@aar') {
        exclude module: 'support-v4'
    }
}

. . .

并自行正确构建,例如 assembleRelease 有效。

我无法让测试正常工作。我收到很多错误,例如:

package com.google.zxing does not exist

这些似乎表明 .jar 文件没有被拾取。

这是我用于测试项目的 build.gradle:

buildscript {
  repositories {
    mavenLocal()
    mavenCentral()

  }
  dependencies {
      classpath 'com.android.tools.build:gradle:0.9.+'
      classpath 'org.robospock:robospock-plugin:0.4.0'

  }
}

repositories {
  mavenLocal()
  mavenCentral()
}

apply plugin: 'groovy'

dependencies {
    compile "org.codehaus.groovy:groovy-all:1.8.6"
    compile 'org.robospock:robospock:0.4.4'
}


dependencies {
    compile fileTree(dir: ':android:libs', include: '*.jar')
    compile (project(':estanteApp')) {
        transitive = true
    }
}

sourceSets.test.java.srcDirs = ['../android/src/', '../android/build/source/r/debug']

test {
    testLogging {
        lifecycle {
            exceptionFormat "full"
        }
    }

}

project.ext {
    robospock = ":estanteApp" // project to test
}


apply plugin: 'robospock'

如图所示,我已尝试添加 transitive = true 并明确包含 .jar 文件。但是无论我怎么尝试,我最终都会遇到包不存在错误。

【问题讨论】:

    标签: java android android-gradle-plugin robospock


    【解决方案1】:

    在 Android Studio 中,您不再需要其他项目进行测试。将您的测试代码放在“src/androidTest/java”下的同一模块中

    然后将以下内容添加到“defaultConfig”中的“build.gradle”

    testPackageName "com.yourpackage.test"
    testInstrumentationRunner "android.test.InstrumentationTestRunner"
    testFunctionalTest true
    

    【讨论】:

    • 那不是在模拟器而不是 JVM 上运行测试吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-11
    • 2018-10-29
    • 1970-01-01
    • 2014-10-31
    相关资源
    最近更新 更多