Friday 15 April 2011

android - AppCompat 21 lollipop updating make Robolectric unit test fail with VerifyError -



android - AppCompat 21 lollipop updating make Robolectric unit test fail with VerifyError -

when updated appcompat-v7:21.0.0 without changing code, robolectric unit test failed verifyerror. tests passed appcompat-v7:20.0.0

i have separate module contains robolectric unit tests. utilize mockito-android robolectric. here dependency of unit test module.

dependencies { testcompile 'junit:junit:4.11' testcompile('org.robolectric:robolectric:2.3') { exclude module: 'classworlds' exclude module: 'commons-logging' exclude module: 'httpclient' exclude module: 'maven-artifact' exclude module: 'maven-artifact-manager' exclude module: 'maven-error-diagnostics' exclude module: 'maven-model' exclude module: 'maven-project' exclude module: 'maven-settings' exclude module: 'plexus-container-default' exclude module: 'plexus-interpolation' exclude module: 'plexus-utils' exclude module: 'wagon-file' exclude module: 'wagon-http-lightweight' exclude module: 'wagon-provider-api' exclude group: 'com.android.support', module: 'support-v4' } testcompile('com.squareup:fest-android:1.0.+') { exclude group: 'com.android.support', module: 'support-v4' } testcompile 'org.mockito:mockito-core:1.10.10' def appmodule = project(':app') testcompile(appmodule) { exclude group: 'com.google.android' exclude module: 'dexmaker-mockito' } testcompile appmodule.android.applicationvariants.tolist().first().javacompile.classpath testcompile appmodule.android.applicationvariants.tolist().first().javacompile.outputs.files testcompile 'com.google.android:android:4.1.1.4' /* fixme : prevent stub! error testcompile files(appmodule.plugins.findplugin("com.android.application").getbootclasspath()) */ compile project(':app') }

error stacktrace:

java.lang.verifyerror: expecting stackmap frame @ branch target 15 exception details: location: android/support/v7/app/actionbaractivity.$$robo$init()v @4: ifnonnull reason: expected stackmap frame @ location. bytecode: 0000000: 2ab4 01ab c700 0b2a 2ab8 02f6 b501 abb1 0000010: @ gcmpushidtest.test_registerpushid_ifthereisnone(gcmpushidtest.java:59) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:606) @ org.junit.runners.model.frameworkmethod$1.runreflectivecall(frameworkmethod.java:47) @ org.junit.internal.runners.model.reflectivecallable.run(reflectivecallable.java:12) @ org.junit.runners.model.frameworkmethod.invokeexplosively(frameworkmethod.java:44) @ org.junit.internal.runners.statements.invokemethod.evaluate(invokemethod.java:17) @ org.junit.internal.runners.statements.runbefores.evaluate(runbefores.java:26) @ org.robolectric.robolectrictestrunner$2.evaluate(robolectrictestrunner.java:250) @ org.junit.runners.parentrunner.runleaf(parentrunner.java:271) @ org.junit.runners.blockjunit4classrunner.runchild(blockjunit4classrunner.java:70) @ org.junit.runners.blockjunit4classrunner.runchild(blockjunit4classrunner.java:50) @ org.junit.runners.parentrunner$3.run(parentrunner.java:238) @ org.junit.runners.parentrunner$1.schedule(parentrunner.java:63) @ org.junit.runners.parentrunner.runchildren(parentrunner.java:236) @ org.junit.runners.parentrunner.access$000(parentrunner.java:53) @ org.junit.runners.parentrunner$2.evaluate(parentrunner.java:229) @ org.robolectric.robolectrictestrunner$1.evaluate(robolectrictestrunner.java:177) @ org.junit.runners.parentrunner.run(parentrunner.java:309) @ org.gradle.api.internal.tasks.testing.junit.junittestclassexecuter.runtestclass(junittestclassexecuter.java:86) @ org.gradle.api.internal.tasks.testing.junit.junittestclassexecuter.execute(junittestclassexecuter.java:49) @ org.gradle.api.internal.tasks.testing.junit.junittestclassprocessor.processtestclass(junittestclassprocessor.java:69) @ org.gradle.api.internal.tasks.testing.suitetestclassprocessor.processtestclass(suitetestclassprocessor.java:48) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:606) @ org.gradle.messaging.dispatch.reflectiondispatch.dispatch(reflectiondispatch.java:35) @ org.gradle.messaging.dispatch.reflectiondispatch.dispatch(reflectiondispatch.java:24) @ org.gradle.messaging.dispatch.contextclassloaderdispatch.dispatch(contextclassloaderdispatch.java:32) @ org.gradle.messaging.dispatch.proxydispatchadapter$dispatchinginvocationhandler.invoke(proxydispatchadapter.java:93) @ com.sun.proxy.$proxy2.processtestclass(unknown source) @ org.gradle.api.internal.tasks.testing.worker.testworker.processtestclass(testworker.java:105) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:606) @ org.gradle.messaging.dispatch.reflectiondispatch.dispatch(reflectiondispatch.java:35) @ org.gradle.messaging.dispatch.reflectiondispatch.dispatch(reflectiondispatch.java:24) @ org.gradle.messaging.remote.internal.hub.messagehub$handler.run(messagehub.java:355) @ org.gradle.internal.concurrent.defaultexecutorfactory$stoppableexecutorimpl$1.run(defaultexecutorfactory.java:64) @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1145) @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:615) @ java.lang.thread.run(thread.java:744)

update robolectric version 2.3 2.4 resolved issue.

testcompile 'org.robolectric:robolectric:2.4'

android unit-testing robolectric

No comments:

Post a Comment