Jacoco 单测覆盖统计工具 基础概念行覆盖率度量被测程序的每行代码是否被执行判断标准行中是否至少有一个指令被执行。类覆盖率度量计算class类文件是否被执行。分支覆盖率度量if和switch语句的分支覆盖情况计算一个方法里面的总分支数确定执行和不执行的 分支数量。方法覆盖率度量被测程序的方法执行情况是否执行取决于方法中是否有至少一个指令被执行。指令覆盖计数单元是单个java二进制代码指令指令覆盖率提供了代码是否被执行的信息度量完全 独立源码格式。圈复杂度在线性组合中计算在一个方法里面所有可能路径的最小数目缺失的复杂度同样表示测 试案例没有完全覆盖到这个模块。https://www.jianshu.com/p/639e51c76544解决方案Jacoco 简介JaCoCoJava Code Coverage是一个开源的 Java 代码覆盖率统计工具广泛应用于单元测试、集成测试等场景。它通过字节码插桩技术动态分析代码执行路径生成覆盖率报告帮助开发者评估测试用例的完整性。Jacoco 核心功能行覆盖率Line Coverage统计代码行是否被执行。分支覆盖率Branch Coverage统计条件分支如if/else是否被覆盖。方法覆盖率Method Coverage统计方法是否被调用。类覆盖率Class Coverage统计类是否被加载并执行。JaCoCo version 0.7.7 implemented a new maven goaljacoco:report-aggregate.https://www.eclemma.org/jacoco/trunk/doc/report-aggregate-mojo.html需要额外添加一个子工程『cov』该工程只有pom文件文件中引用所有的subProject并进行jacoco相应的配置主要是outputDirectory目录。编译命令 mvn verify -Pjacocoparent artifactIdparentProject/artifactId groupIdcom.jacoco.multimodule.test/groupId version${parent-version}/version /parent modelVersion4.0.0/modelVersion groupIdcom.jacoco.multimodule.test/groupId artifactIdcov/artifactId version1.0/version packagingpom/packaging properties maven.deploy.skiptrue/maven.deploy.skip /properties profiles profile idjacoco/id activation activeByDefaultfalse/activeByDefault /activation build plugins plugin groupIdorg.jacoco/groupId artifactIdjacoco-maven-plugin/artifactId executions execution iddefault/id phaseverify/phase goals goalreport-aggregate/goal /goals configuration outputDirectory${project.basedir}/../target/site/jacoco/outputDirectory /configuration /execution /executions /plugin /plugins /build /profile /profiles !-- add project module info as below -- dependencies dependency groupIdcom.jacoco.multimodule.test/groupId artifactIdsubProject1/artifactId /dependency dependency groupIdcom.jacoco.multimodule.test/groupId artifactIdsubProject2/artifactId /dependency /dependencies /projectGradle 集成在build.gradle中添加 JaCoCo 插件plugins { id jacoco } jacoco { toolVersion 0.8.8 } test { finalizedBy jacocoTestReport } jacocoTestReport { reports { xml.required true html.required true } }报告默认生成在build/reports/jacoco/目录。Jacoco 报告解读HTML 报告可视化展示覆盖率详情包括代码高亮和未覆盖行标记。XML 报告适用于与 CI/CD 工具如 Jenkins、SonarQube集成。CSV 报告结构化数据便于进一步分析。Jacoco 与 CI/CD 集成Jenkins通过 JaCoCo 插件解析报告并在流水线中设置质量门禁。SonarQube上传 JaCoCo 报告至 SonarQube实现静态分析与覆盖率结合。Jacoco 常见问题覆盖率不准确检查是否跳过测试如-DskipTests或未正确配置插桩。报告未生成确认插件版本兼容性及执行阶段是否正确绑定。性能影响字节码插桩可能轻微增加测试时间建议仅在需要时启用。参考资源官方文档JaCoCo 官网