【问题标题】:ClassFormatError : JUnit test class run causes PC invalid error before invoking @Test methodClassFormatError : JUnit 测试类运行在调用 @Test 方法之前导致 PC 无效错误
【发布时间】:2018-02-12 13:44:09
【问题描述】:

我在运行测试类时遇到的错误

java.lang.ClassFormatError: JVMCFRE013 local variable PC length invalid; class=com/../MyClass, offset=42431
    at java.lang.ClassLoader.defineClass(ClassLoader.java:265)

当我将MyClass.class 添加到类上方的@PrepareForTest 时,就会发生这种情况。当我删除它时,错误就消失了。 我不认为这是一个 eclpise/java 问题,因为我尝试切换到 Java 1.8 到 1.6。请在这里帮助我。

@RunWith(PowerMockRunner.class)
@PowerMockIgnore("javax.*")
@PrepareOnlyThisForTest({x.class,MyClass.class })
@SuppressStaticInitializationFor("com.xx")
public class MyClassTest {

这是我执行的导致错误的测试类。

【问题讨论】:

  • 你可以显示你的代码...
  • 添加了测试类。
  • 那里的OP提到,“错误似乎是由于我的类文件中的冗长方法而发生的”。在我的情况下这是错误的。当我从@PrepareForTest 中删除同一个类时,错误消失了
  • 没用过PowerMock,可能用得越多,服务越好。

标签: java junit mockito powermock powermockito


【解决方案1】:

问题与主类或测试类的长度无关。 使用的 JavaAssist 版本相对较旧。 javassist-3.11.x.jar我更新到最新的,问题解决了。

【讨论】:

    猜你喜欢
    • 2010-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-05
    • 2016-11-08
    • 1970-01-01
    • 2019-02-17
    • 1970-01-01
    相关资源
    最近更新 更多