【问题标题】:Instrumentation Tests with usage of Spoon setup error使用 Spoon 设置错误的仪器测试
【发布时间】:2015-10-20 15:31:47
【问题描述】:

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

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

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

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

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

第二:在我的应用包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;

【问题讨论】:

    标签: android testing gradle spoon


    【解决方案1】:

    这为我解决了:

    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

    【讨论】:

    • 您好,感谢您的回复。我今天已经看到这个线程了。尝试了所有组合以及您的代码。不幸的是,我的输出没有改变:com.android.ddmlib.IDevice.installPackage(Ljava/lang/String;Z[Ljava/lang/String;)Ljava/lang/String;一直都在。
    • 您添加了:'com.squareup.spoon:spoon-runner:1.2.0' ?打扫干净了吗?
    • 我确实添加了。我没有执行干净,所以我会再试一次。我之前只做过 gradle sync 。问题是,你为什么要排除番石榴,你也要加吗?比如:classpath 'com.google.guava:guava:17.0' 某处?
    • 得到了输出。添加 'com.squareup.spoon:spoon-runner:1.2.0' 并执行 clean 后,输出不会改变。
    【解决方案2】:

    我知道在我的案例中是什么导致了错误。删除:

    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'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-22
      • 2013-07-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多