仪器测试使用Spoon设置错误

时间:2015-10-20 15:31:47

标签: android testing gradle spoon

我正在尝试使用Spoon运行我的测试。

根据设置指南,我找到了https://github.com/stanfy/spoon-gradle-plugin,我为项目设置了一些简单的更改。

首先:我在root build.gradle文件中添加了依赖项:

buildscript {
    repositories {
        jcenter()
        mavenCentral()
        (...)
    }
    dependencies {
        (...)
        classpath 'com.stanfy.spoon:spoon-gradle-plugin:1.0.2'
    }
}

allprojects {
    repositories {
        jcenter()
        mavenCentral()
    }
}

第二:在我的app包build.gradle中,我添加了:

apply plugin: 'spoon'

依赖:

androidTestCompile 'com.squareup.spoon:spoon-client:1.1.9'

并指定我想使用调试版本:

spoon {
    debug true
}

第三:我转到终端,将目录设置为我的项目根目录并调用

./gradlew spoon

我收到此输出和错误。可能导致这种情况的原因是什么?

2015-10-20 17:28:12 [SR.runTests] Executing instrumentation suite on 1 device(s).
2015-10-20 17:28:12 [SR.runTests] Application: com.azimo.sendmoney.debug1 from /Users/F1sherKK/Dev/Azimo-Android/app/build/outputs/apk/app-debug.apk
2015-10-20 17:28:12 [SR.runTests] Instrumentation: com.azimo.sendmoney.debug1.test from /Users/F1sherKK/Dev/Azimo-Android/app/build/outputs/apk/app-debug-androidTest-unaligned.apk
2015-10-20 17:28:12 [SR.runTests] [1903cdc7] Starting execution.
2015-10-20 17:28:12 [SDR.run] InstrumentationInfo: [com.squareup.spoon.SpoonInstrumentationInfo@7baf516e[applicationPackage=com.azimo.sendmoney.debug1,instrumentationPackage=com.azimo.sendmoney.debug1.test,testRunnerClass=android.support.test.runner.AndroidJUnitRunner]]
2015-10-20 17:28:12 [SDR.run] Got realDevice for [1903cdc7]
2015-10-20 17:28:12 [SDR.run] [1903cdc7] setDeviceDetails com.squareup.spoon.DeviceDetails@22444900[model=GT-I9505,manufacturer=samsung,version=5.0.1,apiLevel=21,language=en,region=GB,isEmulator=false,avdName=<null>]
2015-10-20 17:28:12 [SR.runTests] [1903cdc7] Execution done.
:app:spoonDebugAndroidTest FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:spoonDebugAndroidTest'.
> com.android.ddmlib.IDevice.installPackage(Ljava/lang/String;Z[Ljava/lang/String;)Ljava/lang/String;

2 个答案:

答案 0 :(得分:0)

这为我解决了这个问题:

classpath 'com.squareup.spoon:spoon-runner:1.2.0'
classpath('com.stanfy.spoon:spoon-gradle-plugin:1.0.3') {
        exclude module: "guava"
}

一些背景: https://github.com/stanfy/spoon-gradle-plugin/issues/74

答案 1 :(得分:0)

我知道是什么原因导致了我的错误。要删除:

com.android.ddmlib.IDevice.installPackage(Ljava/lang/String;Z[Ljava/lang/String;‌​)Ljava/lang/String

我不得不改变我的gradle构建工具。我以前用过:

classpath 'com.android.tools.build:gradle:1.4.0-beta2'

我不得不将其更改为:

 classpath 'com.android.tools.build:gradle:1.3.1'

要重新创建问题,您可以从gradle-plugin git示例项目中获取。有:

 classpath 'com.android.tools.build:gradle:1.2.2'

使用。在将其更新为1.4.0后,它会产生与我相同的错误。我测试过:1.3.1有效,1.4.0beta2-beta6到目前为止给出错误。

编辑: 更新了跑步者和勺子客户端后修复了错误。使用:

  androidTestCompile 'com.squareup.spoon:spoon-client:1.2.1'

   classpath 'com.squareup.spoon:spoon-runner:1.2.1'