Tag: emma

Testng,Emma,Cobertura,覆盖率和JDK 7导致ClassFormatError和VerifyError

我已经切换到最新的JDK 7,并且我正在对由emma覆盖工具弄乱的字节码进行testngunit testing。 我的testing用例都没有正确运行,而且其中大部分我都收到这样的错误。 java.lang.ClassFormatError: Illegal local variable table length 10 in method measurement.meter.AbstractSerialPortMeter.<init>(Lmeasurement/meter/SerialPort;)V at measurement.meter.Elc3133aTest.setUp(Elc3133aTest.java:42) 我在这里find了一篇文章JSR 292 Goodness Fast Code Coverage Toolless于10k ,这就是说“JSR 292引入了一个新的字节码指令invokedynamic,而且还有一些新的常量池常量,这意味着大多数parsing字节码的工具就像ASM,BCEL,findbugs或EMMA将需要更新为Java 7兼容。“ 检查了Emma主页,但看起来好像很久没有更新了。 有没有人解决过类似的问题? 我也尝试过Cobertura。 它看起来更好一些,但是我得到了许多typesVerifyError的exception。 java.lang.VerifyError: Expecting a stackmap frame at branch target 85 in method measurement.meter.AbstractSerialPortMeter.close()V at offset 26 at measurement.meter.AbstractSerialPortMeterTest.setUp(AbstractSerialPortMeterTest.java:27)