Мне было поручено разделить приложение весенней загрузки, чтобы несколько модулей выглядели примерно так:
- корень
- приложение
- отдых
- обслуживание
- дао
- модель
- build.gradle
- settings.gradle
Примечание: в корневом каталоге проекта нет папки с кодом. Каждый модуль имеет свой собственный src
root
Прежде чем разбить код на модули, плагин gradle-clover показал, что у нас было 95% покрытия кода, но из-за того, как тесты теперь организованы, плагин не может увидеть, что часть кода проходит испытания в других модулях
Например, некоторые методы класса service
тестируются из модуля rest
во время тестирования контроллеров.
Просматривая документацию к плагину (https://github.com/bmuschko/gradle-clover-plugin/blob/master/README.md), они упоминают указание additionalSourceSets
и additionalTestSourceSets
в example
в нижней части страницы, но мне не ясно, как их использовать в мой проект
Я добавил следующий блок из примера в свой корень build.gradle
:
additionalSourceSet {
srcDirs = sourceSets.generatedCode.java.srcDirs
classesDir = sourceSets.generatedCode.java.outputDir
}
additionalTestSourceSet {
srcDirs = sourceSets.integrationTest.java.srcDirs
classesDir = sourceSets.integrationTest.java.outputDir
}
, но получало следующее исключение: Не удалось получить неизвестное свойство «generateCode» для контейнера SourceSet типа org.gradle.api.internal.tasks.DefaultSourceSetContainer.
Затем я попытался поменять generateCode и grationTest с именами моих модулей в корне build.gradle
, но получал то же исключение
Наконец, я попытался указать эти свойства в build.gradle для модуля, но получил следующее исключение: Не удалось найти метод AdditionalSourceSets () для аргументов объекта типа com.bmuschko.gradle.clover.CloverPluginConvention
Действительно ли возможно указать источники других модулей для плагина, которые следует учитывать при создании отчета о покрытии кода для другого модуля?