Intellij idea IntelliJ单元测试问题

Intellij idea IntelliJ单元测试问题,intellij-idea,java-7,powermock,Intellij Idea,Java 7,Powermock,尝试在IntelliJ中运行单元测试时出现以下错误。通过谷歌搜索,它似乎与使用JDK7和Powermock不兼容有关。经常出现的建议是添加-XX:-UseSplitVerifier标志。我已经按照以下说明尝试过:()但仍然会出现错误 还有其他人有这个问题并解决了吗 java.lang.VerifyError: Inconsistent stackmap frames at branch target 48 Exception Details: Location: com/market

尝试在IntelliJ中运行单元测试时出现以下错误。通过谷歌搜索,它似乎与使用JDK7和Powermock不兼容有关。经常出现的建议是添加-XX:-UseSplitVerifier标志。我已经按照以下说明尝试过:()但仍然会出现错误

还有其他人有这个问题并解决了吗

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
java.lang.VerifyError:分支目标处的堆栈映射帧不一致48异常详细信息:位置:
com/marketplace/impl/MarketplaceLibTestBase.(Lorg/powermock/core/indicatatereloadClass;)V@48:aload_2原因:
类型未初始化此(当前帧,局部变量[2])不可分配给“com/marketplace/impl/MarketplaceLibTestBase”(堆栈映射,局部变量[2])当前帧:
密件抄送:@34
标志:{flagthisunit}
局部变量:{uninitializedThis',org/powermock/core/indicatatereloadclass',uninitializedThis',org/powermock/core/indicatatereloadclass',top',java/lang/Object'}
堆栈:{'java/lang/Object','java/lang/Object'}堆栈映射帧:
密件抄送:@48
标志:{flagthisunit}
局部变量:{uninitializedThis,'org/powermock/core/indicatatereloadclass','com/marketplace/impl/MarketplaceLibTestBase','org/powermock/core/indicatatereloadclass'}
堆栈:{}字节码:
0000000:2a2b 4e4d 1312 9bb8 129d 04bd 0011 5903
0000010:2d53 1312 9eb8 12a0 b812 a23a 0519 05b2
0000020:12a4 a500 0e2a 01C00022 b712 a6a7 000a
0000030:2c2d b712 a801 57b1堆栈映射表:
追加帧(@48,对象[#45],对象[#34])
斩帧(@55,2)
在java.lang.Class.getDeclaredMethods0(本机方法)在java.lang.Class.privateGetDeclaredMethods(Class.java:2531)在java.lang.Class.privateGetPublicMethods(Class.java:2651)在java.lang.Class.getMethods(Class.java:1467)在org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.getTestMethods(powermockjunit44runnerdelegateinpl.java:108)位于org.powermock.modules.junit4.internal.impl.powermockjunit44runnerdelegateinpl.java:84)位于org.powermock.modules.junit4.internal.impl.powermockjunit47runnerdelegateinpl.java:42)在sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)在sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)在java.lang.reflect.Constructor.newInstance(Constructor.java:526)位于org.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.createDelegatorFromClassloader(JUnit4TestSuiteChunkerImpl.java:154),位于org.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.createDelegatorFromClassloader(JUnit4TestSuiteChunkerImpl.java:49)位于org.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.java:231的org.powermock.tests.utils.impl.AbstractTestSuiteChunkerImpl.createTestDelegators(AbstractTestSuiteChunkerImpl.java:69),位于org.powermock.modules.junit4.common.internal.impl.AbstractCommonPowerMockRunner。(AbstractCommonPowerMockRunner.java:36)位于org.powermock.modules.junit4.PowerMockRunner。(PowerMockRunner.java:27)位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorAccessorImpl.java:57)位于org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:31)的java.lang.reflect.Constructor.newInstance(Constructor.java:526)的sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)(AnnotatedBuilder.java:24)位于org.junit.RunnerBuilder.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57)位于org.junit.internal.builders.AllDefaultPossibilityBuilder.runnerForClass(AllDefaultPossibilityBuilder.java:29)位于org.junit.runnerModel.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57)org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:24)com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:44)com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:195)com.intellij.rt.execution.JUnitStarter.main(JUnitStarter.java:63)位于com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)的sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)和sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
进程已完成,退出代码为255
来自:

尝试添加

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

org.javassist
javassist
3.18.1-GA

到您的pom.xml。

面对同样的问题,但不是在IntelliJ上,而是在STS.Noob上,您能找到解决方案吗?非常感谢。尝试了一系列不同的解决方案,终于解决了我的问题。太棒了。我们一直在努力寻找添加-XX:-UseSplitVerifier不起作用的原因。更新到更高版本的Javassist也帮了我这个忙。@Joost Papendop链接是broken@JeanValjean更新了它。