Я выполнил миграцию 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
Хунар, не могли бы вы поделиться подробным (--debug
) выводом для задачи test
. Это работает или нет. В противном случае для запуска test
s. Эта ошибка возникает просто потому, что у вас нет .exec файла destinationFile
, где находится переменная, и jacocoTestReport ищет это, следовательно, ошибка.
Также загляните в дистрибутив последней версии Gradle (полный zip / tar), чтобы увидеть примеры Jacoco
в проекте Java, посмотрите, не изменилось ли что-то, что вам может потребоваться сейчас включить для создания файла (ов) .exec
Убеждаться:
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.
Какую командную строку gradle вы используете?