2015-08-16 7 views
10

प्रारंभ करने में विफल रहा Iclipse Kepler के लिए एक प्लगइन विकसित कर रहा हूं। अपने परीक्षण वर्ग के लिए @RunWith (JMockit.class) का कारण बनता है जोड़ा जा रहा है निम्न त्रुटि:JMockIt AgentInitializationException के साथ विफल रहता है: एजेंट JAR लोड किया गया लेकिन एजेंट

JMockit: Reinitializing under custom class loader [email protected][com.mypackage.myclass:2.3.9.201508161221(id=1)] 
java.lang.reflect.InvocationTargetException 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:606) 
     at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:382) 
     at sun.instrument.InstrumentationImpl.loadClassAndCallAgentmain(InstrumentationImpl.java:407) 
Caused by: java.lang.VerifyError 
     at sun.instrument.InstrumentationImpl.redefineClasses0(Native Method) 
     at sun.instrument.InstrumentationImpl.redefineClasses(InstrumentationImpl.java:170) 
     at mockit.internal.startup.Startup.redefineMethods(Startup.java:242) 
     at mockit.internal.startup.Startup.redefineMethods(Startup.java:236) 
     at mockit.internal.mockups.MockClassSetup.applyClassModifications(MockClassSetup.java:134) 
     at mockit.internal.mockups.MockClassSetup.redefineMethodsInClassHierarchy(MockClassSetup.java:91) 
     at mockit.internal.mockups.MockClassSetup.redefineMethods(MockClassSetup.java:76) 
     at mockit.MockUp.redefineMethods(MockUp.java:240) 
     at mockit.MockUp.redefineClassOrImplementInterface(MockUp.java:222) 
     at mockit.MockUp.<init>(MockUp.java:131) 
     at mockit.integration.junit4.internal.RunNotifierDecorator.<init>(RunNotifierDecorator.java:21) 
     at mockit.internal.startup.JMockitInitialization.loadInternalStartupMocksForJUnitIntegration(JMockitInitialization.java:42) 
     at mockit.internal.startup.JMockitInitialization.initialize(JMockitInitialization.java:27) 
     at mockit.internal.startup.Startup.applyStartupMocks(Startup.java:72) 
     at mockit.internal.startup.Startup.reapplyStartupMocks(Startup.java:124) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:606) 
     at mockit.internal.util.MethodReflection.invoke(MethodReflection.java:94) 
     at mockit.internal.util.MethodReflection.invoke(MethodReflection.java:159) 
     at mockit.internal.startup.Startup.reinitializeJMockitUnderCustomClassLoader(Startup.java:118) 
     at mockit.internal.startup.Startup.agentmain(Startup.java:101) 
     ... 6 more 
java.lang.IllegalStateException: com.sun.tools.attach.AgentInitializationException: Agent JAR loaded but agent failed to initialize 
     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
     at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 
     at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:262) 
     at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153) 
     at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:124) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:606) 
     at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray2(ReflectionUtils.java:208) 
     at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:156) 
     at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:82) 
     at org.eclipse.tycho.surefire.osgibooter.OsgiSurefireBooter.run(OsgiSurefireBooter.java:91) 
     at org.eclipse.tycho.surefire.osgibooter.AbstractUITestApplication$1.run(AbstractUITestApplication.java:35) 
     at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) 
     at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135) 
     at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4145) 
     at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3762) 
     at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1113) 
     at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) 
     at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:997) 
     at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:140) 
     at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:611) 
     at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) 
     at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:567) 
     at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) 
     at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124) 
     at org.eclipse.tycho.surefire.osgibooter.UITestApplication.runApplication(UITestApplication.java:31) 
     at org.eclipse.tycho.surefire.osgibooter.AbstractUITestApplication.run(AbstractUITestApplication.java:120) 
     at org.eclipse.tycho.surefire.osgibooter.UITestApplication.start(UITestApplication.java:37) 
     at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) 
     at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) 
     at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) 
     at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:354) 
     at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:181) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:606) 
     at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636) 
     at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591) 
     at org.eclipse.equinox.launcher.Main.run(Main.java:1450) 
     at org.eclipse.equinox.launcher.Main.main(Main.java:1426) 
Caused by: com.sun.tools.attach.AgentInitializationException: Agent JAR loaded but agent failed to initialize 
     ... 39 more 

Am मैं कुछ गलत कर या यह एक JMockit बग है? मैं संस्करण जेएमॉकआईट 1.18 का उपयोग कर रहा हूं, जुनीट 4.12

+0

http://stackoverflow.com/questions/2905735/jmockit-initialization-problem – Rossiar

उत्तर

2

मुझे उम्मीद है कि @RunWith(JMockit.class) इस समस्या का ख्याल रखना चाहिए था।

किसी भी मामले में, जेमॉकिट ट्यूटोरियल here से, कुछ नोट्स हैं जिन्हें आपको जांचना चाहिए, अगर इन्हें आपकी समस्या का समाधान हो। विशेष रूप से, इन दो सबसे अधिक प्रासंगिक होने लगते हैं:

  • (Note for Eclipse users: when specifying the order of jars in the >classpath, make sure to use the "Order and Export" tab of the "Java Build >Path" window. Also, make sure the Eclipse project uses the JRE from a JDK >installation instead of a "plain" JRE, since the latter lacks the >"attach" native library.)
  • In other situations (like running on JDK implementations other than >the Oracle JDKs), you may need to pass "-javaagent:path>/jmockit.jar" as a JVM initialization parameter. This can be done in >the "Run/Debug Configuration" for both Eclipse and IntelliJ IDEA, or with >build tools such as Ant and Maven.
+0

का संभावित डुप्लिकेट मैं ओरेकल जेडीके का उपयोग कर रहा हूं, इसलिए यह समस्या नहीं होनी चाहिए। – Sergey

+0

क्या आपने पहली बार चेक किया है, यानी ऑर्डर और निर्यात टैब में जूनिट से पहले jmockit निर्दिष्ट करें? – JChrist

+0

हाँ, मैंने किया। यह केवल तभी जरूरी है जब आप @RunWith (MockitoJUnit44Runner.class) एनोटेशन का उपयोग न करें। – Sergey

0

सही पैकेज एक्सप्लोरर में अपनी परियोजना के लिए क्लिक करें

click Properties. go to Java Build Path. Libraries tab. click on 'Add Library' button select JUnit click Next. You should be able to handle it from there.

उसके बाद यदि आप के रूप में कवरेज का उपयोग करें: आप कवरेज देखने के लिए सक्षम हो जाएगा।

संबंधित मुद्दे