You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Eclipse中用EclEmma统计URLClassLoader加载类的覆盖率?

解决EclEmma统计自定义URLClassLoader中类覆盖率的问题

EclEmma默认只跟踪系统类加载器与应用类加载器加载的类,所以自定义URLClassLoader加载的插件类会被遗漏,以下是具体解决方法:

1. 调整EclEmma运行配置的类加载器跟踪

在Eclipse中操作:

  • 右键启动器项目,选择「Run As」→「Coverage Configurations」
  • 切换到「Coverage」标签页,找到「Class Loaders」区域
  • 勾选「Trace all class loaders」选项,让EclEmma尝试跟踪所有自定义类加载器
  • 同时在「Inclusion/Exclusion Patterns」中添加插件项目的类路径规则,确保插件类被纳入统计范围

2. 确保插件类被纳入插桩范围

EclEmma依赖字节码插桩统计覆盖率,需保证插件类被正确处理:

  • 针对插件项目,右键选择「Coverage As」→「Coverage Configurations」,确认项目已被添加到覆盖配置的项目列表中
  • 如果插件是外部JAR包,要在启动器的运行配置「Classpath」标签页的「User Entries」中添加这些JAR,同时在EclEmma配置里勾选这些JAR的覆盖统计权限

3. 代码层面主动注册自定义类加载器(可选)

如果上述配置仍不生效,可在启动器代码中显式告知EclEmma跟踪自定义类加载器:

  • 创建URLClassLoader实例后,调用org.eclemma.runtime.Coverage.getRuntime().addClassLoader(classLoader)
  • 注意需确保EclEmma的runtime JAR已添加到启动器的类路径中

4. 验证统计结果

运行覆盖率测试后,在Eclipse的「Coverage」视图中点击「Show all elements」按钮,检查插件项目的类是否出现在统计列表中。若仍未出现,需排查插件类是否被正确加载,以及字节码是否被EclEmma成功插桩。

内容的提问来源于stack exchange,提问作者Horcrux7

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 03:14:57