summaryrefslogtreecommitdiffstats
path: root/tools/test.sh
diff options
context:
space:
mode:
authorKostya <mail@sartin.in>2026-08-20 10:24:22 +0300
committerKostya <mail@sartin.in>2026-08-20 10:24:22 +0300
commit8089a72ef6065a2a01304aa1cc251d9950731527 (patch)
tree0e6f7869ab75ff03f9a3353dde3405fdab26f2be /tools/test.sh
parentcc772de4f973bcfba5d99dbfcfe80513d3261b0c (diff)
downloadguess-market-8089a72ef6065a2a01304aa1cc251d9950731527.tar.gz
guess-market-8089a72ef6065a2a01304aa1cc251d9950731527.tar.xz
guess-market-8089a72ef6065a2a01304aa1cc251d9950731527.zip
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.
Diffstat (limited to 'tools/test.sh')
-rw-r--r--tools/test.sh20
1 files changed, 19 insertions, 1 deletions
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 ==="
35 35
36TEST_CP="$PROD_CP${SEP}build/test-classes" 36TEST_CP="$PROD_CP${SEP}build/test-classes"
37for j in lib/*/*.jar; do 37for j in lib/*/*.jar; do
38 case "$j" in *junit-platform-console-standalone*) continue ;; esac 38 case "$j" in *junit-platform-console-standalone* | lib/jacoco/*) continue ;; esac
39 TEST_CP="$TEST_CP$SEP$j" 39 TEST_CP="$TEST_CP$SEP$j"
40done 40done
41 41
@@ -43,5 +43,23 @@ AGENT_JAR=$(ls lib/mockito/byte-buddy-agent-*.jar 2>/dev/null | head -n 1)
43AGENT_ARG="" 43AGENT_ARG=""
44[ -n "$AGENT_JAR" ] && AGENT_ARG="-javaagent:$AGENT_JAR" 44[ -n "$AGENT_JAR" ] && AGENT_ARG="-javaagent:$AGENT_JAR"
45 45
46JACOCO_AGENT=lib/jacoco/jacocoagent.jar
47JACOCO_CLI=lib/jacoco/jacococli.jar
48mkdir -p build/coverage
49[ -n "$AGENT_ARG" ] && AGENT_ARG="$AGENT_ARG "
50AGENT_ARG="$AGENT_ARG-javaagent:$JACOCO_AGENT=destfile=build/coverage/jacoco.exec"
51
46java $AGENT_ARG -jar "$JUNIT_JAR" execute \ 52java $AGENT_ARG -jar "$JUNIT_JAR" execute \
47 --class-path "$TEST_CP" --scan-class-path --details=summary 53 --class-path "$TEST_CP" --scan-class-path --details=summary
54
55echo "=== Generating coverage report ==="
56CLASSFILES=""
57SOURCEFILES=""
58for m in $MODULES; do
59 CLASSFILES="$CLASSFILES --classfiles build/classes/$m"
60 [ -d "$m/src/main/java" ] && SOURCEFILES="$SOURCEFILES --sourcefiles $m/src/main/java"
61done
62java -jar "$JACOCO_CLI" report build/coverage/jacoco.exec \
63 $CLASSFILES $SOURCEFILES \
64 --html build/coverage/html --xml build/coverage/jacoco.xml
65echo " build/coverage/html/index.html"