JaCoCo v0.8.13 发布:全面支持 Java 23/24 并增强 Kotlin 覆盖率分析

JaCoCo v0.8.13 发布:全面支持 Java 23/24 并增强 Kotlin 覆盖率分析

【免费下载链接】jacoco :microscope: Java Code Coverage Library 【免费下载链接】jacoco 项目地址: https://gitcode.com/gh_mirrors/ja/jacoco

JaCoCo(Java Code Coverage)作为 Java 生态中最受欢迎的代码覆盖率工具之一,近期发布了 v0.8.13 版本。这个版本带来了多项重要更新,特别是在对新版本 Java 的支持和 Kotlin 语言特性的覆盖率分析方面有了显著提升。

JaCoCo 工具简介

JaCoCo 是一个开源的 Java 代码覆盖率库,它通过在字节码层面插入探针来收集执行数据,能够生成详细的覆盖率报告。这些报告包括行覆盖率、分支覆盖率、方法覆盖率等多种指标,帮助开发者评估测试的完整性。JaCoCo 因其轻量级、易集成和丰富的报告格式而广受欢迎,是 Java 项目质量保障的重要工具。

主要更新内容

Java 版本支持升级

v0.8.13 版本正式支持 Java 23 和 Java 24 的字节码格式,这确保了开发者在使用最新 Java 版本时仍能获得准确的覆盖率数据。此外,该版本还实验性地支持了 Java 25 的类文件,为未来的 Java 版本升级做好了准备。

Kotlin 语言特性支持增强

本次更新在 Kotlin 语言支持方面做了大量改进:

  1. 内联函数支持:现在能够正确计算 Kotlin inline 函数的行覆盖率,包括带有 reified 类型参数的内联函数。

  2. 编译器生成代码过滤:新增了对多种 Kotlin 编译器生成代码的过滤支持:

    • Compose 编译器插件生成的部分字节码
    • 内联值类生成的部分字节码
    • 无挂起点的挂起 lambda 生成的部分字节码
    • 带有可为空枚举或 String 主题的 when 表达式生成的部分字节码
    • 安全调用操作符链生成的部分字节码
    • 枚举类的 getEntries 方法
    • 带有 JvmOverloads 注解的构造函数和函数生成的方法
  3. 注解支持:现在能够正确处理 JvmSynthetic 注解函数的覆盖率计算。

其他改进

  1. Kotlin SMAP 解析:修复了 Kotlin SMAP(源映射)的解析问题,提高了行覆盖率计算的准确性。

  2. HTML 报告改进:当规范化文件名冲突时,现在会保留文件扩展名,使报告更加清晰易读。

  3. 错误处理增强:在读取 zip 文件时发生 IllegalArgumentException 时,会提供更多上下文信息,便于问题诊断。

技术实现细节

JaCoCo 通过字节码插桩技术实现覆盖率收集。新版本升级到了 ASM 9.8 字节码操作框架,这为其提供了处理最新 Java 版本字节码的能力。对于 Kotlin 的支持,JaCoCo 通过分析编译器生成的特定模式字节码,智能地过滤掉编译器生成的辅助代码,确保覆盖率报告只反映开发者实际编写的代码。

升级建议

对于使用 Java 23/24 或 Kotlin 的项目,强烈建议升级到此版本以获得更准确的覆盖率数据。升级时需要注意:

  1. 构建系统现在需要至少 Maven 3.9.9 版本
  2. 如果项目中使用 Kotlin 的特定功能(如内联函数、Compose 等),升级后将获得更精确的覆盖率报告

总结

JaCoCo v0.8.13 通过增强对新 Java 版本和 Kotlin 语言特性的支持,进一步巩固了其作为 Java 生态代码覆盖率标准工具的地位。这些改进使得开发者在使用现代 Java 和 Kotlin 特性时,仍能获得准确、有意义的覆盖率数据,为软件质量保障提供了有力支持。

【免费下载链接】jacoco :microscope: Java Code Coverage Library 【免费下载链接】jacoco 项目地址: https://gitcode.com/gh_mirrors/ja/jacoco

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值