From 8089a72ef6065a2a01304aa1cc251d9950731527 Mon Sep 17 00:00:00 2001 From: Kostya Date: Thu, 20 Aug 2026 10:24:22 +0300 Subject: Add JaCoCo coverage reporting to test.sh Vendor jacocoagent.jar/jacococli.jar under lib/jacoco/ (excluded from the shipped classpath), attach the agent during test runs, and generate an HTML+XML report into build/coverage after tests pass. --- tools/test.sh | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'tools/test.sh') diff --git a/tools/test.sh b/tools/test.sh index 4eaeb82..e867871 100644 --- a/tools/test.sh +++ b/tools/test.sh @@ -35,7 +35,7 @@ echo "=== Running tests ===" TEST_CP="$PROD_CP${SEP}build/test-classes" for j in lib/*/*.jar; do - case "$j" in *junit-platform-console-standalone*) continue ;; esac + case "$j" in *junit-platform-console-standalone* | lib/jacoco/*) continue ;; esac TEST_CP="$TEST_CP$SEP$j" done @@ -43,5 +43,23 @@ AGENT_JAR=$(ls lib/mockito/byte-buddy-agent-*.jar 2>/dev/null | head -n 1) AGENT_ARG="" [ -n "$AGENT_JAR" ] && AGENT_ARG="-javaagent:$AGENT_JAR" +JACOCO_AGENT=lib/jacoco/jacocoagent.jar +JACOCO_CLI=lib/jacoco/jacococli.jar +mkdir -p build/coverage +[ -n "$AGENT_ARG" ] && AGENT_ARG="$AGENT_ARG " +AGENT_ARG="$AGENT_ARG-javaagent:$JACOCO_AGENT=destfile=build/coverage/jacoco.exec" + java $AGENT_ARG -jar "$JUNIT_JAR" execute \ --class-path "$TEST_CP" --scan-class-path --details=summary + +echo "=== Generating coverage report ===" +CLASSFILES="" +SOURCEFILES="" +for m in $MODULES; do + CLASSFILES="$CLASSFILES --classfiles build/classes/$m" + [ -d "$m/src/main/java" ] && SOURCEFILES="$SOURCEFILES --sourcefiles $m/src/main/java" +done +java -jar "$JACOCO_CLI" report build/coverage/jacoco.exec \ + $CLASSFILES $SOURCEFILES \ + --html build/coverage/html --xml build/coverage/jacoco.xml +echo " build/coverage/html/index.html" -- cgit v1.2.3