我正在尝试使用EMMA来测量一些使用JMockit的JUnit测试的覆盖率。但是当我尝试在使用EMMA进行插装后运行JMockit测试时,大约四分之一的测试会失败,并显示以下错误:
com.logstorage.engine.sensor.SensorManagerTest.setUpBeforeClass(SensorManagerTest.java:98)
java.lang.ClassFormatError
at sun.instrument.InstrumentationImpl.redefineClasses0(Native Method)
at sun.instrument.InstrumentationImpl.redefineClasses(InstrumentationImpl.java:150)
at mockit.internal.RedefinitionEngine.redefineMethods(RedefinitionEngine.java:152)
at mockit.internal.RedefinitionEngine.redefineMethods(RedefinitionEngine.java:139)
at mockit.internal.RedefinitionEngine.redefineMethods(RedefinitionEngine.java:73)
at mockit.Mockit.setUpMock(Mockit.java:235)
at com.myapp.MyTest.setUpBeforeClass(MyTest.java:98)
我看不出哪些测试会失败,哪些不会。我猜这只是JMockit中的一个bug,但有人知道解决方法吗?
我发现一个非常类似的问题叫做“使用EMMA时出现ClassFormatError?”但是解决方案对我不起作用(我没有使用任何reentrant=true的模拟方法)。还有其他想法吗?
提前致谢。