mcpField
J
jacoco

jacoco

github.com/claude-dev-suite测试与质量4652 次安装2 天前更新
代码仓库

关于 jacoco

面向 Java 开发者的 JaCoCo 速查技能,介绍 Maven 项目中的覆盖率配置、阈值、报告、排除项和 CI 实践。

主要功能

  1. 01Maven 覆盖率配置
  2. 02覆盖率阈值
  3. 03生成覆盖率报告
  4. 04排除指定类
  5. 05故障排查

适用场景

  1. 01在 Maven 构建中添加覆盖率检查
  2. 02查看行覆盖率和分支覆盖率
  3. 03排查覆盖率报告缺失问题

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/claude-dev-suite/claude-dev-suite --skill jacoco

安装后在 Claude Code 中输入/jacoco确认已加载。

详细介绍

JaCoCo - 快速参考

何时使用此技能

  • 在 Java/Maven 项目中配置代码覆盖率
  • 设置覆盖率阈值
  • 在 CI/CD 中集成覆盖率

何时不使用此技能

  • JavaScript/TypeScript 覆盖率 - 使用 Vitest 技能进行前端覆盖率统计
  • SonarQube 配置 - 使用 sonarqube 技能设置质量门禁
  • 编写测试 - 使用 Spring Boot Test 或 JUnit 技能
  • Gradle 项目 - JaCoCo 可以使用,但语法与 Maven 不同

深入了解:使用 mcp__documentation__fetch_docs,并将技术名称设为 jacoco,以获取全面的文档。

基本模式

Maven 配置
<plugin>
    <groupId>org.jacoco</groupId>
    <artifactId>jacoco-maven-plugin</artifactId>
    <version>0.8.12</version>
    <executions>
        <execution>
            <id>prepare-agent</id>
            <goals><goal>prepare-agent</goal></goals>
        </execution>
        <execution>
            <id>report</id>
            <phase>test</phase>
            <goals><goal>report</goal></goals>
        </execution>
        <execution>
            <id>check</id>
            <goals><goal>check</goal></goals>
            <configuration>
                <rules>
                    <rule>
                        <element>BUNDLE</element>
                        <limits>
                            <limit>
                                <counter>LINE</counter>
                                <value>COVEREDRATIO</value>
                                <minimum>0.80</minimum>
                            </limit>
                        </limits>
                    </rule>
                </rules>
            </configuration>
        </execution>
    </executions>
</plugin>
排除项
<excludes>
    <exclude>com.company.config.*</exclude>
    <exclude>com.company.dto.*</exclude>
    <exclude>com.company.entity.*</exclude>
    <exclude>com.company.mapper.*Impl</exclude>
</excludes>
命令
mvn clean verify           # Test + coverage check
mvn jacoco:report          # Generate report
open target/site/jacoco/index.html  # View report

计数器类型

计数器描述
LINE代码行
BRANCH分支(if/switch)
METHOD方法

反模式

反模式不良影响正确做法
追求 100% 覆盖率收益递减,测试臃肿以 80% 的 LINE 覆盖率和 70% 的 BRANCH 覆盖率为目标
将 DTO/实体纳入覆盖率统计虚增数据,且没有逻辑需要测试使用 <excludes> 排除
只检查 LINE 覆盖率会遗漏未测试的分支同时检查 LINE 和 BRANCH
CI 中没有覆盖率阈值无法保障质量添加带有最低值的 <check> 目标
排除过多代码造成虚假的安全感只排除生成的代码和配置代码
不对 jacoco.exec 进行版本控制无法跟踪覆盖率趋势在 CI 中归档报告

快速故障排除

问题可能原因解决方案
覆盖率报告显示 0%测试运行时未启用 Agent确保在测试前运行 prepare-agent 目标
覆盖率检查导致构建失败覆盖率低于阈值添加测试,或调整 <limit> 中的最低值
报告没有排除任何内容排除模式错误使用完全限定名称(com.company.dto.*)
报告缺少类测试期间未加载这些类添加集成测试以覆盖这些类
CI 中的覆盖率低于本地测试执行方式不同确保 CI 运行所有测试阶段
SonarQube 未显示覆盖率报告路径错误检查 sonar.coverage.jacoco.xmlReportPaths

延伸阅读

如需了解高级配置:mcp__documentation__fetch_docs

  • 技术名称:jacoco(MCP 中尚未提供 - 请使用官方文档)
  • JaCoCo 文档

评论

支持 Markdown