gradle-clover-plugin для получения покрытия кода из отдельного модуля - PullRequest
4 голосов
/ 26 апреля 2019

Мне было поручено разделить приложение весенней загрузки, чтобы несколько модулей выглядели примерно так:

  • корень
    • приложение
      • build.gradle
    • отдых
      • build.gradle
    • обслуживание
      • build.gradle
    • дао
      • build.gradle
    • модель
      • build.gradle
    • 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

Действительно ли возможно указать источники других модулей для плагина, которые следует учитывать при создании отчета о покрытии кода для другого модуля?

...