Покрытие Jacoco в многомодульном проекте Gradle, не включая подмодулиJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Покрытие Jacoco в многомодульном проекте Gradle, не включая подмодули

Сообщение Anonymous »

Я разрабатываю многомодульный проект Gradle (8.7), структурированный таким образом, что один модуль выступает в качестве основного приложения, а другие — это библиотеки, используемые этим приложением. Все модульные тесты расположены внутри модуля приложения. Хотя эти тесты охватывают пути кода в модулях библиотеки, Jacoco, похоже, не создает отчеты о покрытии для этих подмодулей, что приводит к неточно низким показателям покрытия.
Вот структура:

Код: Выделить всё

repository-root/
└── application/
├── app/
│   ├── src/
│   │   ├── main/
│   │   │   └── java/
│   │   └── test/
│   └── build.gradle.kts
├── common/
│   ├── src/
│   │   └── main/
│   │       └── java/
│   └── build.gradle.kts
└── build.gradle.kts
Проблема:
Основная проблема: несмотря на наличие тестов, охватывающих код библиотечного модуля, отчеты Jacoco отражают покрытие только модуля приложения.
Цель: получить отчет о покрытии, который точно включает данные из всех модулей, отражая истинное покрытие, достигнутое с помощью тестов, выполняемых в модуле приложения.
Я попытался включить покрытие для одного из модулей библиотеки (:common), настроив jacocoTestReport Задача в app/build.gradle.kts в build.gradle модуля приложения следующим образом:

Код: Выделить всё

tasks.jacocoTestReport {
val common = project(":common")
dependsOn(tasks.test)
dependsOn(common.tasks.test)
classDirectories.setFrom(
files("$buildDir/classes/java/main"),
files("${common.buildDir}/classes/java/main"))
sourceDirectories.setFrom(
files("${projectDir}src/main/java"),
files("${common.projectDir}/src/main/java"))
executionData.setFrom(
files("$buildDir/jacoco/test.exec"),
files("${common.buildDir}/jacoco/test.exec"))
reports {
xml.required.set(true)
csv.required.set(false)
html.required.set(true)
}
}
Хочу уточнить, что нашел это решение на каком-то форуме, но в моем общем модуле test.exec не генерируется. Также другие решения, такие как создание агрегированного RootReport, которое я нашел по другому вопросу, возможно, не подойдут для моего случая.

Подробнее здесь: https://stackoverflow.com/questions/782 ... submodules
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»