我正在尝试使用 EMMA 生成代码覆盖率报告使用一些测试 JMockit作为模拟框架。在大多数情况下,它是有效的,但我的一些测试因 ClassFormatError 而崩溃,如下所示:
java.lang.ClassFormatError
at sun.instrument.InstrumentationImpl.redefineClasses0(Native Method)
at sun.instrument.InstrumentationImpl.redefineClasses(InstrumentationImpl.java:79)
at mockit.internal.RedefinitionEngine.redefineMethods(RedefinitionEngine.java:138)
at mockit.internal.RedefinitionEngine.redefineMethods(RedefinitionEngine.java:73)
at mockit.Mockit.setUpMocks(Mockit.java:177)
at test.my.UnitTest.setUpBeforeClass(UnitTest.java:21)
知道发生了什么,我是否可以解决这个问题?还是 EMMA 和 JMockit 互斥?
最佳答案
似乎是 JMockit 中的一个错误:类已经被 EMMA 检测后,JMockit 似乎在创建“reentry=true”模拟方法时遇到问题。
删除“reentry=true”“解决”了这个问题。
关于java - 使用 EMMA 获取 ClassFormatError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/253614/