java - 使用 EMMA 获取 ClassFormatError?

标签 java unit-testing code-coverage jmockit emma

我正在尝试使用 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/

相关文章:

c# - 如何检查 cobertura.xml 文件的代码/测试覆盖率是否高于指定阈值?

c++ - 提交后选择智能单元测试

java - 来自客户端计算机本身的客户端请求能否由服务器上的 java 处理?

java - 如何在时间复杂度方面改进算法?

java - 无效 key 异常 : Key Spec Not Recognised

python - 我可以从不同的目录运行 django 测试 (manage.py) 吗?

java - 解析 .rdfs 文件

python - 如何测试从网络数据解析?

java - 单元测试框架 - TestNG 使用可配置值来定义 threadPoolSize

testing - PHPUnit、代码覆盖率、xdebug 和 html 报告