gpt4 book ai didi

jmockit - 使用 JMockit 和 EMMA 的 ClassFormatError

转载 作者:行者123 更新时间:2023-12-03 12:11:00 33 4
gpt4 key购买 nike

我正在尝试使用 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 中的一个错误,但有人知道解决方法吗?

我发现了一个非常相似的问题,称为“使用 EMMA 获取 ClassFormatError?”但该解决方案对我不起作用(我没有使用任何 reentrant=true 模拟方法)。还有其他想法吗?

提前致谢。

最佳答案

我遇到了同样的问题 - 这似乎已经为我解决了这个问题,希望也能帮助其他人。

如果您通过 ant 运行此程序,请确保您没有 vars在您的 javac目标的debuglevel争论。以下目标将导致错误。

<javac srcdir="${src}" destdir="${bin}" debug="on" debuglevel="lines,source,vars" nowarn="true" /> 

将其更改为:
<javac srcdir="${src}" destdir="${bin}" debug="on" debuglevel="lines,source" nowarn="true">

这可能是一个 JMockit 错误 - 非常微妙并且很容易找到。

关于jmockit - 使用 JMockit 和 EMMA 的 ClassFormatError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/905052/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com