如何包含传递依赖

时间:2014-06-06 21:14:24

标签: java android android-gradle robospock

我有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文件。但无论我尝试什么,我最终都会遇到包不存在的错误。

1 个答案:

答案 0 :(得分:0)

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

下的同一模块中

然后将以下内容添加到“defaultConfig”

中的“build.gradle”
testPackageName "com.yourpackage.test"
testInstrumentationRunner "android.test.InstrumentationTestRunner"
testFunctionalTest true