java.lang.NoClassDefFoundError: Could not initialize class org.mockito.internal.util.MockUtil -
i want use testng + powermock + spring run test code,my jar version is:
powermock = 1.6.2 powermock-module-testng = 1.6.2 mockito = 1.10.19 testng = 6.8.7 spring = 4.1.1.release jdk = 1.8.0
and test code follows,and not extends autobasetest, can run normal,autobasetest contains @contextconfiguration(locations={"/test/resources/applicationcontext-test.xml"})
@preparefortest({test.class}) public class mocktest extends autobasetest { @objectfactory public iobjectfactory getobjectfactory() { return new powermockobjectfactory(); } @test public final void test() throws exception { ...... } }
the error stack :
`failed configuration: @beforeclass springtestcontextbeforetestclass java.lang.exceptionininitializererror @ org.mockito.internal.exceptions.stacktrace.conditionalstacktracefilter.(conditionalstacktracefilter.java:17) @ org.mockito.exceptions.base.mockitoexception.filterstacktrace(mockitoexception.java:41) @ org.mockito.exceptions.base.mockitoexception.(mockitoexception.java:30) @ org.mockito.exceptions.misusing.mockitoconfigurationexception.(mockitoconfigurationexception.java:18) @ org.mockito.internal.configuration.plugins.pluginloader.loadimpl(pluginloader.java:66) @ org.mockito.internal.configuration.plugins.pluginloader.loadplugin(pluginloader.java:24) @ org.mockito.internal.configuration.plugins.pluginregistry.(pluginregistry.java:12) @ org.mockito.internal.configuration.plugins.plugins.(plugins.java:11) @ org.mockito.internal.util.mockutil.(mockutil.java:24) @ org.mockito.internal.configuration.injection.scanner.mockscanner.(mockscanner.java:22) @ org.mockito.internal.configuration.injectingannotationengine.injectmocks(injectingannotationengine.java:96) @ org.powermock.api.mockito.internal.configuration.powermockitoinjectingannotationengine.process(powermockitoinjectingannotationengine.java:35) @ org.powermock.api.extension.listener.annotationenabler.injectspiesandinjecttosetters(annotationenabler.java:60) @ org.powermock.api.extension.listener.annotationenabler.beforetestmethod(annotationenabler.java:55) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:62) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:498) @ org.powermock.reflect.internal.whiteboximpl.performmethodinvocation(whiteboximpl.java:1873) @ org.powermock.reflect.internal.whiteboximpl.invokemethod(whiteboximpl.java:663) @ org.powermock.reflect.whitebox.invokemethod(whitebox.java:415) @ org.powermock.modules.testng.internal.powermocktestngmethodhandler.injectmocksusingannotationenabler(powermocktestngmethodhandler.java:75) @ org.powermock.modules.testng.internal.powermocktestngmethodhandler.invoke(powermocktestngmethodhandler.java:47) @ test.java.com.sosopay.servicetest.mocktest_$$jvstb5f_0.springtestcontextbeforetestclass(mocktest$$_jvstb5f_0.java) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:62) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:498) @ org.testng.internal.methodinvocationhelper.invokemethod(methodinvocationhelper.java:84) @ org.testng.internal.invoker.invokeconfigurationmethod(invoker.java:564) @ org.testng.internal.invoker.invokeconfigurations(invoker.java:213) @ org.testng.internal.invoker.invokeconfigurations(invoker.java:138) @ org.testng.internal.testmethodworker.invokebeforeclassmethods(testmethodworker.java:175) @ org.testng.internal.testmethodworker.run(testmethodworker.java:107) @ org.testng.testrunner.privaterun(testrunner.java:767) @ org.testng.testrunner.run(testrunner.java:617) @ org.testng.suiterunner.runtest(suiterunner.java:335) @ org.testng.suiterunner.runsequentially(suiterunner.java:330) @ org.testng.suiterunner.privaterun(suiterunner.java:291) @ org.testng.suiterunner.run(suiterunner.java:240) @ org.testng.suiterunnerworker.runsuite(suiterunnerworker.java:52) @ org.testng.suiterunnerworker.run(suiterunnerworker.java:86) @ org.testng.testng.runsuitessequentially(testng.java:1224) @ org.testng.testng.runsuiteslocally(testng.java:1149) @ org.testng.testng.run(testng.java:1057) @ org.testng.remote.remotetestng.run(remotetestng.java:111) @ org.testng.remote.remotetestng.initandrun(remotetestng.java:204) @ org.testng.remote.remotetestng.main(remotetestng.java:175) caused by: java.lang.nullpointerexception @ org.mockito.internal.configuration.plugins.plugins.getstacktracecleanerprovider(plugins.java:17) @ org.mockito.internal.exceptions.stacktrace.stacktracefilter.(stacktracefilter.java:21) ... 48 more failed configuration: @aftermethod springtestcontextaftertestmethod(public final void test.java.com.sosopay.servicetest.mocktest.test() throws java.lang.exception) java.lang.noclassdeffounderror: not initialize class org.mockito.internal.util.mockutil @ org.mockito.internal.configuration.injection.scanner.mockscanner.(mockscanner.java:22) @ org.mockito.internal.configuration.injectingannotationengine.injectmocks(injectingannotationengine.java:96) @ org.powermock.api.mockito.internal.configuration.powermockitoinjectingannotationengine.process(powermockitoinjectingannotationengine.java:35) @ org.powermock.api.extension.listener.annotationenabler.injectspiesandinjecttosetters(annotationenabler.java:60) @ org.powermock.api.extension.listener.annotationenabler.beforetestmethod(annotationenabler.java:55) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:62) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:498) @ org.powermock.reflect.internal.whiteboximpl.performmethodinvocation(whiteboximpl.java:1873) @ org.powermock.reflect.internal.whiteboximpl.invokemethod(whiteboximpl.java:663) @ org.powermock.reflect.whitebox.invokemethod(whitebox.java:415) @ org.powermock.modules.testng.internal.powermocktestngmethodhandler.injectmocksusingannotationenabler(powermocktestngmethodhandler.java:75) @ org.powermock.modules.testng.internal.powermocktestngmethodhandler.invoke(powermocktestngmethodhandler.java:47) @ test.java.com.sosopay.servicetest.mocktest_$$jvstb5f_0.springtestcontextaftertestmethod(mocktest$$_jvstb5f_0.java) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:62) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:498) @ org.testng.internal.methodinvocationhelper.invokemethod(methodinvocationhelper.java:84) @ org.testng.internal.invoker.invokeconfigurationmethod(invoker.java:564) @ org.testng.internal.invoker.invokeconfigurations(invoker.java:213) @ org.testng.internal.invoker.invokemethod(invoker.java:786) @ org.testng.internal.invoker.invoketestmethod(invoker.java:901) @ org.testng.internal.invoker.invoketestmethods(invoker.java:1231) @ org.testng.internal.testmethodworker.invoketestmethods(testmethodworker.java:127) @ org.testng.internal.testmethodworker.run(testmethodworker.java:111) @ org.testng.testrunner.privaterun(testrunner.java:767) @ org.testng.testrunner.run(testrunner.java:617) @ org.testng.suiterunner.runtest(suiterunner.java:335) @ org.testng.suiterunner.runsequentially(suiterunner.java:330) @ org.testng.suiterunner.privaterun(suiterunner.java:291) @ org.testng.suiterunner.run(suiterunner.java:240) @ org.testng.suiterunnerworker.runsuite(suiterunnerworker.java:52) @ org.testng.suiterunnerworker.run(suiterunnerworker.java:86) @ org.testng.testng.runsuitessequentially(testng.java:1224) @ org.testng.testng.runsuiteslocally(testng.java:1149) @ org.testng.testng.run(testng.java:1057) @ org.testng.remote.remotetestng.run(remotetestng.java:111) @ org.testng.remote.remotetestng.initandrun(remotetestng.java:204) @ org.testng.remote.remotetestng.main(remotetestng.java:175) failed configuration: @afterclass springtestcontextaftertestclass java.lang.noclassdeffounderror: not initialize class org.mockito.internal.util.mockutil @ org.mockito.internal.configuration.injection.scanner.mockscanner.(mockscanner.java:22)`
it's defect in mockito loading plugins when context class loader different used load powermock , mockito.
it fixed in mockito 2, mentioned in comments
not sure have build infrastructure backport fix on 1.x
for mockito 1, fix cannot delivered, fixed in in powermock , fix include in next powermock release (powermock 1.6.5).
Comments
Post a Comment