jacoco について
Java 開発者向けの JaCoCo クイックリファレンススキルです。Maven プロジェクトのカバレッジ設定、しきい値、レポート、除外、CI の指針を扱います。
主な機能
- 01Maven のカバレッジ設定
- 02カバレッジしきい値
- 03レポート生成
- 04クラスの除外設定
- 05トラブルシューティング
活用シーン
- 01Maven ビルドへのカバレッジチェック追加
- 02行と分岐のカバレッジ確認
- 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 と異なります
詳細な知識:包括的なドキュメントについては、technology:
jacocoを指定してmcp__documentation__fetch_docsを使用してください。
基本的なパターン
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% を目指す | 効果が逓減し、テストが肥大化します | LINE は 80%、BRANCH は 70% を目標にします |
| DTO/エンティティをカバレッジに含める | 数値が水増しされ、テストすべきロジックがありません | <excludes> で除外します |
| LINE カバレッジだけを確認する | 未テストの分岐を見逃します | LINE と BRANCH の両方を確認します |
| CI にカバレッジのしきい値がない | 品質を強制できません | 最小値を指定した <check> ゴールを追加します |
| コードを除外しすぎる | 誤った安心感につながります | 生成コードまたは設定コードのみを除外します |
| jacoco.exec をバージョン管理しない | カバレッジの推移を追跡できません | CI でレポートをアーカイブします |
簡単なトラブルシューティング
| 問題 | 考えられる原因 | 解決策 |
|---|---|---|
| カバレッジレポートが 0% と表示される | エージェントを使ってテストが実行されていません | テストの前に prepare-agent ゴールが実行されることを確認します |
| カバレッジチェックでビルドが失敗する | カバレッジがしきい値を下回っています | テストを追加するか、<limit> の最小値を調整します |
| レポートで何も除外されない | 除外パターンが正しくありません | 完全修飾名(com.company.dto.*)を使用します |
| レポートにクラスがない | テスト中にクラスが読み込まれていません | 対象をカバーする統合テストを追加します |
| CI のカバレッジがローカルより低い | テストの実行方法が異なります | CI ですべてのテストフェーズが実行されることを確認します |
| SonarQube にカバレッジが表示されない | レポートのパスが正しくありません | sonar.coverage.jacoco.xmlReportPaths を確認します |
参考資料
高度な設定については、
mcp__documentation__fetch_docsを参照してください
- Technology:
jacoco(MCP では未対応です。公式ドキュメントを使用してください)- JaCoCo Docs
コメント
Markdown 対応