Android 使用勺子设置错误进行仪器测试
我正试着用勺子做测试 根据我在那里找到的安装指南:,我对我的项目进行了一些简单的更改 第一:我在root build.gradle文件中添加了依赖项:Android 使用勺子设置错误进行仪器测试,android,testing,gradle,spoon,Android,Testing,Gradle,Spoon,我正试着用勺子做测试 根据我在那里找到的安装指南:,我对我的项目进行了一些简单的更改 第一:我在root build.gradle文件中添加了依赖项: buildscript { repositories { jcenter() mavenCentral() (...) } dependencies { (...) classpath 'com.stanfy.spoon:spoon-gradl
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;
2015-10-20 17:28:12[SR.runTests]在1台设备上执行检测套件。
2015-10-20 17:28:12[SR.runTests]应用程序: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]检测: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]开始执行。
2015-10-20 17:28:12[SDR.run]仪器信息:[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]获得[1903cdc7]的realDevice
2015-10-20 17:28:12[SDR.run][1903cdc7]设置设备详情com.squareup.spoon。DeviceDetails@22444900[model=GT-I9505,manufacturer=samsung,version=5.0.1,apiLevel=21,language=en,region=GB,isEmulator=false,avdName=]
2015-10-20 17:28:12[SR.runTests][1903cdc7]执行完成。
:app:spoonDebugAndroidTest失败
失败:生成失败,出现异常。
*出了什么问题:
任务“:app:spoonDebugAndroidTest”的执行失败。
>installPackage(Ljava/lang/String;Z[Ljava/lang/String;)Ljava/lang/String;
这为我解决了这个问题:
classpath 'com.squareup.spoon:spoon-runner:1.2.0'
classpath('com.stanfy.spoon:spoon-gradle-plugin:1.0.3') {
exclude module: "guava"
}
一些背景:
我知道是什么原因导致我的案例出错。要删除:
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给出了错误
编辑:
更新runner和spoon客户端后已修复错误。使用:
androidTestCompile 'com.squareup.spoon:spoon-client:1.2.1'
及
您好,谢谢您的回复。我今天已经看到了这个线程。尝试了所有的组合以及您的代码。很遗憾,我的输出没有改变。不管我做什么:com.android.ddmlib.IDevice.installPackage(Ljava/lang/String;Z[Ljava/lang/String;)Ljava/lang/String;始终存在。您添加了:“com.squareup.spoon:spoon runner:1.2.0”?并进行了清理?我添加了。我没有执行清理,所以我将重试。我之前只进行了gradle同步。问题是,为什么要排除番石榴,您也在添加它?比如:classpath“com.google.guava:guava:17.0”某处?在添加“com.squar”后获得了输出eup.spoon:spoon runner:1.2.0'并执行清理,输出不变。
classpath 'com.squareup.spoon:spoon-runner:1.2.1'