Перейти к содержимому
Источник Про покрытие тестами

diff-coverage-report

https://github.com/pavelkorolevxyz/diff-coverage-report

Всего 4 дня пинг понга с Gradle Plugin Portal, чтобы они апрувнули мой паблиш, плюс несколько свободных часов с клодкодом, чтобы это всё дело причесать и не так стыдно было выкладывать.

Это просто Gradle-плагин, который тащит одну таску, запускать так:

./gradlew reportDiffCoverage --branch=main --report=build/reports/kover/report.xml

или так:

./gradlew reportDiffCoverage --diffSha=abc123 --report=build/reports/jacoco/test/jacocoTestReport.xml

Результат сразу видно в консоли

> Task :reportDiffCoverage
17/20 - src/main/kotlin/Feature.kt
10/15 - src/main/kotlin/Service.kt

Total: 27/35 (77.14%)
Report saved to: /path/to/build/reports/coverage/report.txt

И в файле, чтобы попарсить для своих проверок

analyzedLines: 35
coveredLines: 27
uncoveredLines: 8
coveragePercentage: 77.14

Предусловий не должно быть никаких. Ест XML файл отчёта и ссылку на ветку/коммит с которым сравнивать, всё.

PS. Пока сути в том, что это Gradle-плагин нет никакой, могло бы быть просто скриптом (может даже и будет скриптом в альтернативном варианте). Но, думаю, неплохая идея туда конфигурацию вынести.