coverage-guard について
テストコマンドの実行後にカバレッジを確認し、設定したしきい値を下回ると警告するスキルです。テストを止めずにカバレッジの変化を把握したいチーム向けです。
主な機能
- 01テスト実行後のカバレッジ確認
- 02結果と設定しきい値の比較
- 03カバレッジ低下時の警告
- 04カバレッジコマンドの設定
活用シーン
- 01テスト実行後のカバレッジ低下の検出
- 02ステートメント・分岐・関数・行のしきい値監視
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ proffesor-for-testing/ agentic-qe --skill coverage-guardインストール後、Claude Code で/coverage-guardを入力して読み込まれたか確認します。
同梱ファイルscripts/check-coverage.sh
詳細
カバレッジガードモード
有効にすると、テスト実行後にカバレッジをチェックし、設定したしきい値を下回った場合に警告します。
機能
テストが実行されるたびに(Bash ツール経由で)、カバレッジを config.json のしきい値と比較します。カバレッジが低下した場合に警告します(実行はブロックしません)。
有効化
/coverage-guard
設定
このスキルディレクトリにある config.json を編集して、しきい値を設定します。
{
"thresholds": {
"statements": 80,
"branches": 70,
"functions": 75,
"lines": 80
},
"coverageCommand": "npx jest --coverage --coverageReporters=json-summary",
"coverageFile": "coverage/coverage-summary.json"
}
フックの設定
{
"hooks": {
"PostToolUse": [
{
"matcher": "Bash",
"hook": ".claude/skills/coverage-guard/scripts/check-coverage.sh",
"condition": "command contains 'jest' OR command contains 'vitest' OR command contains 'npm test'"
}
]
}
}
適用ロジック
#!/bin/bash
# check-coverage.sh
COVERAGE_FILE="coverage/coverage-summary.json"
THRESHOLD=80
if [ -f "$COVERAGE_FILE" ]; then
STATEMENTS=$(jq '.total.statements.pct' "$COVERAGE_FILE")
BRANCHES=$(jq '.total.branches.pct' "$COVERAGE_FILE")
if (( $(echo "$STATEMENTS < $THRESHOLD" | bc -l) )); then
echo "WARNING: Statement coverage ($STATEMENTS%) below threshold ($THRESHOLD%)"
echo "Coverage dropped — check which files lost coverage."
fi
if (( $(echo "$BRANCHES < 70" | bc -l) )); then
echo "WARNING: Branch coverage ($BRANCHES%) below 70%"
fi
fi
注意点
- カバレッジチェックはテストコマンドの実行後に行われます。テストがクラッシュすると、カバレッジレポートは生成されません。
- Coverage-summary.json をレポーターとして設定する必要があります。Jest のデフォルト設定には含まれていない場合があります。
- しきい値の比較には浮動小数点数を使用します。しきい値が
80%の場合、79.999%は下回ったと判定されます。 - ブランチカバレッジは通常、行カバレッジより10~15%低くなります。それに応じてしきい値を設定してください。
コメント
Markdown 対応