2013-10-24 89 views
3

我試圖在IntelliJ中運行單元測試時出現以下錯誤。從谷歌搜索看來,它似乎與使用JDK7和Powermock不兼容有關。經常出現的建議是添加-XX:-UseSplitVerifier標誌。我已經按照以下說明嘗試了這一點:(How to increase IDE memory limit in IntelliJ IDEA on Mac?),但繼續出現錯誤。IntelliJ單元測試問題

有沒有其他人有這個問題,並解決它?

java.lang.VerifyError: Inconsistent stackmap frames at branch target 48 Exception Details: Location: 
    com/marketplace/impl/MarketplaceLibTestBase.<init>(Lorg/powermock/core/IndicateReloadClass;)V @48: aload_2 Reason: 
    Type uninitializedThis (current frame, locals[2]) is not assignable to 'com/marketplace/impl/MarketplaceLibTestBase' (stack map, locals[2]) Current Frame: 
    bci: @34 
    flags: { flagThisUninit } 
    locals: { uninitializedThis, 'org/powermock/core/IndicateReloadClass', uninitializedThis, 'org/powermock/core/IndicateReloadClass', top, 'java/lang/Object' } 
    stack: { 'java/lang/Object', 'java/lang/Object' } Stackmap Frame: 
    bci: @48 
    flags: { flagThisUninit } 
    locals: { uninitializedThis, 'org/powermock/core/IndicateReloadClass', 'com/marketplace/impl/MarketplaceLibTestBase', 'org/powermock/core/IndicateReloadClass' } 
    stack: { } Bytecode: 
    0000000: 2a2b 4e4d 1312 9bb8 129d 04bd 0011 5903 
    0000010: 2d53 1312 9eb8 12a0 b812 a23a 0519 05b2 
    0000020: 12a4 a500 0e2a 01c0 0022 b712 a6a7 000a 
    0000030: 2c2d b712 a801 57b1      Stackmap Table: 
    append_frame(@48,Object[#45],Object[#34]) 
    chop_frame(@55,2) 

    at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Class.java:2531) at java.lang.Class.privateGetPublicMethods(Class.java:2651)  at java.lang.Class.getMethods(Class.java:1467) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.getTestMethods(PowerMockJUnit44RunnerDelegateImpl.java:108) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.<init>(PowerMockJUnit44RunnerDelegateImpl.java:84)  at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl.<init>(PowerMockJUnit47RunnerDelegateImpl.java:42)  at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)  at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)  at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at org.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.createDelegatorFromClassloader(JUnit4TestSuiteChunkerImpl.java:154)  at org.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.createDelegatorFromClassloader(JUnit4TestSuiteChunkerImpl.java:49) at org.powermock.tests.utils.impl.AbstractTestSuiteChunkerImpl.createTestDelegators(AbstractTestSuiteChunkerImpl.java:231) at org.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.<init>(JUnit4TestSuiteChunkerImpl.java:69) at org.powermock.modules.junit4.common.internal.impl.AbstractCommonPowerMockRunner.<init>(AbstractCommonPowerMockRunner.java:36) at org.powermock.modules.junit4.PowerMockRunner.<init>(PowerMockRunner.java:27)  at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)  at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)  at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:31) at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:24) at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57) at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:29) at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57) at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:24)  at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:44) at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:195) at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:63) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120) 


Process finished with exit code 255 
+0

面對相同的問題,但不是在IntelliJ上,而是在STS上。 Noob哪裏可以找到解決方案? – Akshay

回答

8

an old issue on Google Code

嘗試增加

<dependency> 
    <groupId>org.javassist</groupId> 
    <artifactId>javassist</artifactId> 
    <version>3.18.1-GA</version> 
</dependency> 

到你的pom.xml。

+0

非常感謝。嘗試一堆不同的解決方案,這最終解決了我的問題。 – maimoona

+0

太棒了。爲了找出爲什麼添加-XX:-UseSplitVerifier無法正常工作,我一直在努力爭取。更新到Javassist的更高版本也爲我做了竅門。 –

+0

@Joost Papendorp鏈接已損壞 – JeanValjean