Configuración de Deckard para Gradle. Error con la prueba Robolectric

Estoy tratando de crear un proyecto con Robolectric deckard-gradle Todo está bien, pero cuando ejecuto una prueba robolectric la construcción falló con una excepción:

cd my-project ./gradlew clean test 1 test completed, failed :testDebug FAILED java.lang.IllegalArgumentException at org.objectweb.asm.ClassReader.<init>(Unknown Source) at org.objectweb.asm.ClassReader.<init>(Unknown Source) at org.robolectric.bytecode.AsmInstrumentingClassLoader.findClass(AsmInstrumentingClassLoader.java:140) at org.robolectric.bytecode.AsmInstrumentingClassLoader.loadClass(AsmInstrumentingClassLoader.java:98) at org.robolectric.SdkEnvironment.bootstrappedClass(SdkEnvironment.java:45) at org.robolectric.RobolectricTestRunner$2.evaluate(RobolectricTestRunner.java:205) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) at org.robolectric.RobolectricTestRunner$1.evaluate(RobolectricTestRunner.java:177) at org.junit.runners.ParentRunner.run(ParentRunner.java:309) at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecuter.runTestClass(JUnitTestClassExecuter.java:86) at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecuter.execute(JUnitTestClassExecuter.java:49) at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassProcessor.processTestClass(JUnitTestClassProcessor.java:69) at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:50) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:483) at org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35) at org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) at org.gradle.messaging.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:32) at org.gradle.messaging.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93) at com.sun.proxy.$Proxy2.processTestClass(Unknown Source) at org.gradle.api.internal.tasks.testing.worker.TestWorker.processTestClass(TestWorker.java:103) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:483) at org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35) at org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) at org.gradle.messaging.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:355) at org.gradle.internal.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:64) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:744) 

Por otro lado, cuando se ejecuta una prueba de Espresso no se produce ningún error

Ambiente:

Gradle 1,10

JDK 8

Última actualización de Android SDK

¡Gracias!

2 Solutions collect form web for “Configuración de Deckard para Gradle. Error con la prueba Robolectric”

También me encontré con este problema, voy a dejar una respuesta aquí en caso de que ayuda a alguien más que se ejecuta a través de este mensaje al buscar este error. Para mí, fue que la versión de Robolectric (o más específicamente, la versión de ASM en la que se basa) no funcionó con Java 8. La actualización de Robolectric 2.2 a 2.3 arregló esto para mí.

Resuelto. El error fue causado por un conflicto de versión en la carpeta .gradle (gradle-1.10 vs gradle 1.11). La eliminación de la carpeta .gradle y la regeneración gradle soluciona el problema.

  • Recursos de la biblioteca con Robolectric 3 - JodaTime
  • ¿Cómo puedo burlarme del contexto usando Mockito y Robolectric?
  • NPE cuando getSystemService se llama en una instancia de servicio por Robolectric
  • Prueba de que el botón inicia una Actividad con Robolectric
  • Cómo determinar la unidad de píxeles (px, dp, etc) de una vista en Java?
  • Pruebas con Robolectric y ANT
  • ¿Cómo crear sombras personalizadas en robolectric 3.0?
  • Java.lang.IllegalStateException: debe haber habido alguna superposición para resourceIdToResName
  • Actualizar Robolectric 2.4: Obtener error de etiqueta de aplicación para proyectos de biblioteca en eclipse
  • Gradle Robolectric Resources NotFoundException en pruebas
  • NoClassDefFoundError: org / json / JSONException - Android Roboelectric con gradle
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.