我正在尝试使用 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” “解决了”这个问题。

其他提示

从何处以及如何删除此“reentry = true”

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top