Плагин Gradle jacoco не генерирует файлы exec

Я выполнил миграцию Gradle с Gradle 3.5 на Gradle 4.6. После миграции файлы exec перестали генерироваться. Папка / build не содержит папки jacoco. Если я запускаю команду gradle с помощью - debug, она записывает в журнал:

[org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter] Skipping task ':common:jacocoTestReport' as task onlyIf is false.

Вот часть скрипта Gradle:

subprojects {
apply plugin: 'java'
apply plugin: 'jacoco'
apply plugin: 'idea'
...
jacocoTestReport {
    reports {
        xml.enabled true
        csv.enabled false
    }
    afterEvaluate {
        classDirectories = files(classDirectories.files.collect {
            fileTree(dir: it,
                    exclude: ['**/dto/**', '**/endpoint/**','**/enpoints/**', '**/spring/**',
                              '**/servlet/**','**/handler/**', '**/jpa/**', '**/filter/**', '**/events/**', '**/dao/**',
                              '**/exception/**', '**/http/**', '**/jdbc/**', '**/bigquery/**', '**/enums/**',
                              '**/repository/**', '**/combination/**', '**/datastore/**', '**/cassandra/**',
                              '**/google/**', '**/exceptions/**', '**/logging/**', '**/JavaGeneratedContext.java', '**/Q*.java'])
        })
    }
}

test {
    enabled = !skipTests
    allJvmArgs = [
        '-Dfile.encoding=utf-8'
    ]
    useJUnit {
        excludeCategories 'com.severn.common.test.IntegrationTest'
    }
    /*jacoco {
        enabled = true
        destinationFile = file("$buildDir/jacoco/jacocoTest.exec")
    }*/
    finalizedBy jacocoTestReport
}

...

}

Какую командную строку gradle вы используете?

ToYonos 02.05.2018 10:57

чистая сборка gradle

Hunar Letsko 03.05.2018 11:35

Хунар, не могли бы вы поделиться подробным (--debug) выводом для задачи test. Это работает или нет. В противном случае для запуска tests. Эта ошибка возникает просто потому, что у вас нет .exec файла destinationFile, где находится переменная, и jacocoTestReport ищет это, следовательно, ошибка.

AKS 08.05.2018 20:39

Также загляните в дистрибутив последней версии Gradle (полный zip / tar), чтобы увидеть примеры Jacoco в проекте Java, посмотрите, не изменилось ли что-то, что вам может потребоваться сейчас включить для создания файла (ов) .exec

AKS 08.05.2018 20:54
Gradle за прокси-сервером
Gradle за прокси-сервером
Создайте проект Gradle под сетевым прокси.
"DevOps: Jenkins & AWS Series, часть 5: Установка Gradle на Ubuntu 22.04
"DevOps: Jenkins & AWS Series, часть 5: Установка Gradle на Ubuntu 22.04
В этой статье блога мы проведем вас через процесс установки Gradle на Ubuntu 22.04, интеграции его с Jenkins и создания задания Gradle. Мы...
0
4
1 244
1

Ответы 1

Убеждаться:

1) Информация об отладке включается во время компиляции в файле Gradle верхнего уровня (allprojects { ... }). Подробнее см. Здесь: Покрытие модульных и интеграционных тестов Jacoco - индивидуальных и общих

   tasks.withType(Compile) {
     options.debug = true
     options.compilerArgs = ["-g"]
   }

2) Попробуйте удалить всю конфигурацию Jacoco из задачи test (убедитесь, что вы поместили файл .exec, если он сгенерирован, в место по умолчанию, где его ожидает задача jacocoTestReport). Убедитесь, что задача test запущена (и не исключена каким-либо образом). В целях тестирования (чтобы сузить эту проблему .exec, которая не создается), вы можете заставить задачу jacocoTestReport зависеть от задачи test.

tasks.withType(Test) {enabled = true}

3) См. Последний пакет Gradle 4.6 (tar / zip) для примеров Jacoco для одно- / многоуровневого проекта Java, чтобы получить подсказку.

PS: Версия JaCoCo по умолчанию обновлена ​​до 0.8.0 Посмотрите, помогает ли форсирование этой версии в блоке jacoco.

https://docs.gradle.org/4.6/release-notes.html Плагин JaCoCo был обновлен для использования по умолчанию JaCoCo версии 0.8.0.

Другие вопросы по теме