Покрытие тестами и/или Как добавить JaCoCo в проект Gradle Чтобы спокойно спать по ночам разработчикам нужно писать тесты. Много тестов. И один из способов проверять себя - это следить за процентным покрытием тестами кода. В нормальном проекте, в котором есть время на их написание, обычно планка идет от 80% и выше, но не больше чем 95%. Здесь не нужно упарываться и доводить эту планку до 100%. Да, я знаю, что даже 100% покрытие тестов не гарантирует, что наш код оттестирован полностью. Но это и не цель - цель понимать, какое кол-во кода ВООБЩЕ НЕ ТЕСТИРУЕТСЯ. Это очень важный пункт и его нужно понимать. То есть если у нас покрытие 49%, то это значит, что в 51% кода тесты вообще не бывали и как там оно работает одному богу известно. А это в свою очередь гарантирует, что могут быть тривиальные дефекты, проблемы с рефакторингом и прочие "радости" побочки при отсутствии тестов. Самый быстрый и простой способ следить за этим - это добавить JaCoCo (Java Code Coverage) плагин. Он поможет нам в этом деле. Покажу на примере работы с gradle, благо там все просто. Нужно добавить следующую кодовую часть в build.gradle: В секцию плагинов добавить плагин JaCoCo: plugins { ... id 'jacoco' ... } Далее еще настройки, коих по началу хватит с головой, чтобы решить эту проблему: jacoco { toolVersion = "0.8.7" } test { finalizedBy jacocoTestReport } jacocoTestReport { reports { xml.enabled true html.enabled true csv.enabled false } } jacocoTestCoverageVerification { violationRules { rule { limit { // минимальное покрытие тестами в процентах minimum = 0.50 } } } } check.dependsOn jacocoTestCoverageVerification И все, теперь при запуске билда gradle clean build если покрытие будет меньше 50%, то выйдет ошибка такая: * What went wrong: Execution failed for task ':your-project:jacocoTestCoverageVerification'. > Rule violated for bundle your-project: instructions covered ratio is 0.49, but expected minimum is 0.50 И все, дело в шляпе. Далее дело уже за вами. Разумеется всех желающих сказать свое мнение приглашаю в коменты) Джавист Роман | Подписаться
Бесконечные тесты 🍀
Сложные и интересные тесты каждый день. 👍
Подписывайтесь, будет интересно. 💛
👉 Тесты на эрудицию✅
👉 Тесты на кругозор✅
👉 Тесты на логику✅
Канал · 133