分支上的堆栈映射帧不一致 - Java8 Maven单元测试

时间:2016-07-11 18:52:31

标签: java maven unit-testing javassist powermockito

首先,我想提一下我读了很多关于这个问题的内容,但我找不到任何解决方案。

我有一些单元测试类,我在另一个类中使用mockstatic方法。然后,当我运行测试时,它会抛出“分支上的不一致堆栈图帧...”错误。

我尝试过所有人都知道的方式,例如-XX:-UseSplitVerifier或-noverify params添加到maven surefire插件,但它们都没有正常工作。我一直都是同一个州。

我试图更改PowerMock的版本 - 更旧和最新 - 没有任何改变。

我使用库: PowerMockito 1.62(使用Javassist 3.19.0-GA版本) Java 1.8 Maven 3.2.5

请让我知道,有没有任何可行的解决方案如何在Java8 +中避免这个问题?

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

字节代码操作工具需要更新它们更改的代码的堆栈映射帧。否则,在您的情况下会发生VerifierError。 Java 8中不再支持通过要求旧验证程序(-XX:-UseSplitVerifier)来禁用堆栈映射帧的验证。

我假设您发现了Javassist中的一个错误,它知道堆栈映射帧并且可能错误地将它们发送出去。尝试更新到库的the latest version。如果这不起作用,请创建错误的再现并提交错误。