¿Cómo puedo ejecutar Jacoco en android studio para la cobertura de código

Tengo un sabor de depuración en el estudio de Android ya. Mi archivo de configuración gradle para mi módulo de aplicación contiene lo siguiente:

debug{ testCoverageEnabled true } 

Entonces ejecuto el siguiente comando en el terminal:

 gradlew createDebugCoverageReport 

Y de hecho obtengo un informe, pero la aplicación también se bloquea con un error de sólo lectura y no puedo entenderlo. Estoy usando un mac. Aquí está el rastreo de la pila:

  **java.io.FileNotFoundException: /jacoco.exec: open failed: EROFS (Read-only file system)** 03-01 00:04:56.871 19006-19006/mypackage.org.duckduck W/System.err﹕ at libcore.io.IoBridge.open(IoBridge.java:416) 03-01 00:04:56.871 19006-19006/mypackage.org.duckduck W/System.err﹕ at java.io.FileOutputStream.<init>(FileOutputStream.java:88) 03-01 00:04:56.871 19006-19006/mypackage.org.duckduck W/System.err﹕ at org.jacoco.agent.rt.internal_932a715.output.FileOutput.openFile(FileOutput.java:67) 03-01 00:04:56.871 19006-19006/mypackage.org.duckduck W/System.err﹕ at org.jacoco.agent.rt.internal_932a715.output.FileOutput.startup(FileOutput.java:49) 03-01 00:04:56.871 19006-19006/mypackage.org.duckduck W/System.err﹕ at org.jacoco.agent.rt.internal_932a715.Agent.startup(Agent.java:122) 03-01 00:04:56.871 19006-19006/mypackage.org.duckduck W/System.err﹕ at org.jacoco.agent.rt.internal_932a715.Agent.getInstance(Agent.java:50) 03-01 00:04:56.871 19006-19006/mypackage.org.duckduck W/System.err﹕ at org.jacoco.agent.rt.internal_932a715.Offline.<clinit>(Offline.java:31) 03-01 00:04:56.871 19006-19006/mypackage.org.duckduck W/System.err﹕ at mypackage.org.duckduck.MainApplication.$jacocoInit(MainApplication.java) 03-01 00:04:56.871 19006-19006/mypackage.org.duckduck W/System.err﹕ at mypackage.org.duckduck.MainApplication.<clinit>(MainApplication.java) 03-01 00:04:56.871 19006-19006/mypackage.org.duckduck W/System.err﹕ at java.lang.Class.newInstanceImpl(Native Method) 03-01 00:04:56.871 19006-19006/mypackage.org.duckduck W/System.err﹕ at java.lang.Class.newInstance(Class.java:1319) 03-01 00:04:56.871 19006-19006/mypackage.org.duckduck W/System.err﹕ at android.app.Instrumentation.newApplication(Instrumentation.java:983) 03-01 00:04:56.871 19006-19006/mypackage.org.duckduck W/System.err﹕ at android.app.Instrumentation.newApplication(Instrumentation.java:968) 03-01 00:04:56.871 19006-19006/mypackage.org.duckduck W/System.err﹕ at android.app.LoadedApk.makeApplication(LoadedApk.java:499) 03-01 00:04:56.871 19006-19006/mypackage.org.duckduck W/System.err﹕ at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4480) 03-01 00:04:56.871 19006-19006/mypackage.org.duckduck W/System.err﹕ at android.app.ActivityThread.access$1300(ActivityThread.java:146) 03-01 00:04:56.871 19006-19006/mypackage.org.duckduck W/System.err﹕ at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1300) 03-01 00:04:56.871 19006-19006/mypackage.org.duckduck W/System.err﹕ at android.os.Handler.dispatchMessage(Handler.java:99) 03-01 00:04:56.871 19006-19006/mypackage.org.duckduck W/System.err﹕ at android.os.Looper.loop(Looper.java:137) 03-01 00:04:56.871 19006-19006/mypackage.org.duckduck W/System.err﹕ at android.app.ActivityThread.main(ActivityThread.java:5168) 03-01 00:04:56.871 19006-19006/mypackage.org.duckduck W/System.err﹕ at java.lang.reflect.Method.invokeNative(Native Method) 03-01 00:04:56.871 19006-19006/mypackage.org.duckduck W/System.err﹕ at java.lang.reflect.Method.invoke(Method.java:511) 03-01 00:04:56.871 19006-19006/mypackage.org.duckduck W/System.err﹕ at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:797) 03-01 00:04:56.871 19006-19006/mypackage.org.duckduck W/System.err﹕ at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:564) 03-01 00:04:56.871 19006-19006/mypackage.org.duckduck W/System.err﹕ at dalvik.system.NativeStart.main(Native Method) 03-01 00:04:56.871 19006-19006/mypackage.org.duckduck W/System.err﹕ Caused by: libcore.io.ErrnoException: open failed: EROFS (Read-only file system) 03-01 00:04:56.871 19006-19006/mypackage.org.duckduck W/System.err﹕ at libcore.io.Posix.open(Native Method) 03-01 00:04:56.871 19006-19006/mypackage.org.duckduck W/System.err﹕ at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110) 03-01 00:04:56.871 19006-19006/mypackage.org.duckduck W/System.err﹕ at libcore.io.IoBridge.open(IoBridge.java:400) 03-01 00:04:56.871 19006-19006/mypackage.org.duckduck W/System.err﹕ ... 24 more 

Tuve el mismo problema de ejecutar jacoco en un dispositivo USB. Usando Genymotion resolvió el problema.

Puesto que, no veo su archivo entero del gradle no estoy seguro si usted tiene ya esto la manera derecha pero una sugerencia es no aplica el enchufe jacoco explícitamente si usted está en el archivo del gradle. La versión más reciente de Gradle viene empaquetada con JaCoCo.

Esto fue romper mis pruebas hasta hace poco cuando intenté sin esa línea.

Otra cosa es que sólo corre

gradle connectedCheck

Desde el terminal (Mac) o el símbolo del sistema (windows) y esto genera el informe de cobertura del código html para mí.

Esperemos que esto solucione su problema también.

Esta advertencia parece irrelevante :

El mensaje de error desapareció al montar el sistema de archivos raíz read-write

 mount -o remount,rw rootfs / 

, Y sólo establecer los permisos de escritura para todos los usuarios (sólo hacer esto en un emulador !, es realmente inseguro)

 chmod 777 / 

Por desgracia, mis pruebas se rompieron antes y después, cambiar esto no los arregló en absoluto.

Así que a menos que haya un problema real, podría tratar esto como un mensaje que no requiere acción .

  • Cobertura de código de Android en Jenkins CI
  • Cobertura de código con jacoco para una biblioteca de Android
  • Cobertura androide jacoco vacía con gradle
  • Combine la cobertura jacoco de androidTest y pruebe
  • JaCoCo no trabaja con pruebas Robolectric
  • Jacoco con Android Gradle 1.3.0
  • Java.lang.NoClassDefFoundError: Resolución fallida de: Lorg / jacoco / agent / rt / internal_773e439 / Offline;
  • Cómo obtener informes de cobertura de código de google Firebase para Android Espresso tests
  • cómo generar un informe de cobertura de código para androidTest utilizando Jacoco en el estudio android
  • Aspectos del Informe de Cobertura de Jacoco
  • Jacoco convierte cobertura.ec a informes sin cobertura.em
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.