con un clic
jacoco
Check JaCoCo code coverage
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Menú
Check JaCoCo code coverage
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Basado en la clasificación ocupacional SOC
Project coding standards and conventions for Java 17 with Lombok, spring-javaformat, checkstyle, and PMD
Implement a GitHub issue with branch and pull request workflow
Create or update a GitHub issue for tracking work
Save a learning to project memory. Invoke automatically (without user asking) whenever a task required more than one fix cycle to resolve — e.g. a test failed and needed a second attempt, a compile error required a correction, an API behaved unexpectedly, or an assumption proved wrong mid-task. Also invoke when the user explicitly asks to remember something. Do NOT invoke for routine single-pass work.
Build the project with Maven
Plan the implementation of a GitHub issue
| name | jacoco |
| description | Check JaCoCo code coverage |
| argument-hint | [class-name] |
| allowed-tools | Bash(bash *), Bash(python3 *) |
Run verify to generate coverage reports, then parse and display results.
bash "/Users/alex.mondshain/Library/Application Support/JetBrains/IntelliJIdea2025.3/plugins/maven/lib/maven3/bin/mvn" verify -f pom.xml -pl spring-boot-config-json-schema-starter -q
python3 -c "
import xml.etree.ElementTree as ET
THRESHOLD = 80
module = 'spring-boot-config-json-schema-starter'
try:
tree = ET.parse(f'{module}/target/site/jacoco/jacoco.xml')
root = tree.getroot()
for counter in root.findall('counter'):
if counter.get('type') == 'LINE':
missed = int(counter.get('missed'))
covered = int(counter.get('covered'))
total = missed + covered
pct = covered / total * 100 if total > 0 else 0
status = 'PASS' if pct >= THRESHOLD else 'FAIL'
print(f'{module:<45} {covered:>8} {total:>8} {pct:>9.2f}% {status:>8}')
except FileNotFoundError:
print(f'{module}: No coverage report found')
"
python3 -c "
import xml.etree.ElementTree as ET
module = 'spring-boot-config-json-schema-starter'
tree = ET.parse(f'{module}/target/site/jacoco/jacoco.xml')
root = tree.getroot()
results = []
for pkg in root.findall('.//package'):
for cls in pkg.findall('class'):
for counter in cls.findall('counter'):
if counter.get('type') == 'LINE':
missed = int(counter.get('missed'))
covered = int(counter.get('covered'))
total = missed + covered
if total > 0:
pct = covered / total * 100
results.append((pct, missed, covered, total, cls.get('name')))
results.sort()
print(f\"{'Coverage':>10} {'Missed':>8} {'Covered':>8} {'Total':>8} Class\")
print('-' * 80)
for pct, missed, covered, total, name in results:
print(f'{pct:>9.1f}% {missed:>8} {covered:>8} {total:>8} {name}')
"
If $ARGUMENTS is a class name, find uncovered lines:
python3 -c "
import xml.etree.ElementTree as ET
module = 'spring-boot-config-json-schema-starter'
tree = ET.parse(f'{module}/target/site/jacoco/jacoco.xml')
root = tree.getroot()
CLASS_NAME = '$ARGUMENTS.java'
for pkg in root.findall('.//package'):
for sf in pkg.findall('sourcefile'):
if sf.get('name') == CLASS_NAME:
uncovered = []
for line in sf.findall('line'):
mi = int(line.get('mi', 0))
if mi > 0:
uncovered.append(int(line.get('nr')))
print(f'Uncovered lines in {CLASS_NAME}: {len(uncovered)} lines')
for ln in uncovered:
print(f' Line {ln}')
"
When coverage is below 80%:
@ParameterizedTest to efficiently cover multiple code paths