android testing android-gradle jacoco build.gradle

android - Jacoco con Gradle 0.10.0: el objeto remoto no existe



testing android-gradle (1)

Prueba este ...

buildscript { repositories { mavenCentral() } dependencies { classpath ''com.android.tools.build:gradle:0.13.0'' } } repositories { mavenCentral() } apply plugin: ''com.android.application'' apply plugin: ''jacoco'' android { compileSdkVersion 21 buildToolsVersion "21.1.1" // Must Require defaultConfig { applicationId "com.packagename" <Change it> minSdkVersion 11 targetSdkVersion 21 versionCode 1 versionName "1.0" } packagingOptions { exclude ''META-INF/DEPENDENCIES'' exclude ''META-INF/LICENSE'' exclude ''META-INF/LICENSE.txt'' exclude ''META-INF/NOTICE'' exclude ''META-INF/NOTICE.txt'' exclude ''META-INF/services/javax.annotation.processing.Processor'' } lintOptions { abortOnError false } buildTypes { debug { testCoverageEnabled true } } } dependencies { compile fileTree(dir: ''libs'', include: [''*.jar'']) } jacoco { toolVersion = "0.7.1.201405082137" }

ACTUALIZACIÓN 21 de octubre de 2014: el problema se ha confirmado como solucionado mediante el uso de buildtools 21.

ACTUALIZACIÓN EL 18 DE SEPTIEMBRE DE 2014: el estado del problema se actualizó a FutureRelease .

ACTUALIZACIÓN: He oído que esto puede no funcionar con Dagger, y dado que Espresso usa Dagger, podría estar causando algunos problemas. Se envió un error al equipo de Gradle.

Google actualizó recientemente su implementación de Gradle a 0.10.0 . Una de las cosas que ahora ofrecen es el apoyo de Jacoco. Para hacer esto, mencionan establecer lo siguiente:

testCoverageEnabled = true

En tu tipo de construcción Ahora cuando ejecuto mis pruebas Espresso (usando connectedCheck ), me sale un error justo cuando empiezo a ejecutar la tarea :connectedAndroidTest que dice:

Tests on HTC One - 4.2.2 - API 17 - 1080x1920 - 4.2.2 failed: Instrumentation run failed due to ''java.lang.VerifyError'' 01:38:31 E/Device: Error during Sync: Remote object doesn''t exist! null java.io.IOException: com.android.ddmlib.SyncException: Remote object doesn''t exist! at com.android.builder.testing.ConnectedDevice.pullFile(ConnectedDevice.java:114) at com.android.builder.internal.testing.SimpleTestCallable.call(SimpleTestCallable.java:158) at com.android.builder.internal.testing.SimpleTestCallable.call(SimpleTestCallable.java:42) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) Caused by: com.android.ddmlib.SyncException: Remote object doesn''t exist! at com.android.ddmlib.SyncService.pullFile(SyncService.java:314) at com.android.ddmlib.Device.pullFile(Device.java:849) at com.android.builder.testing.ConnectedDevice.pullFile(ConnectedDevice.java:107) ... 8 more :connectedAndroidTest FAILED

Aquí están las partes que he cambiado en el archivo build.gradle :

buildscript { dependencies { classpath ''com.android.tools.build:gradle:0.10.+'' ... } ... } android { buildTypes { debug { testCoverageEnabled = true ... } .... } ... }

¿Hay alguna otra pieza del archivo build.gradle que deba actualizar para que Jacoco funcione?

El error menciona que un "objeto remoto" no existe. Por lo general, atribuyo esto al simulador que no está sincronizado y un reinicio lo soluciona. Pero lo he intentado y tampoco funcionó. ¿Alguna idea de lo que el error intenta decirme?