Обновление с версии 5.3 до 5.6 и jacoco ломаются, потому что doFirst и findAll больше не работают - PullRequest
0 голосов
/ 01 февраля 2020

Мой последний файл сборки с изменениями, готовящимися к обновлению до Gradle 6, находится здесь (хотя эта версия также не работает) ...

https://github.com/deanhiller/webpieces/blob/fixJacoco/build.gradle

Выше я называю его jacocoMergeReport (и все отчет о слиянии должен делать, это отчеты о слиянии, поэтому его нельзя пропустить, если есть тесты ZERO, поскольку к моменту его запуска тест всегда равен нулю). Старый обходной путь, найденный в этой сущности, больше не работает https://gist.github.com/aalmiray/e6f54aa4b3803be0bcac

Моя старая задача, которая работала в Gradle 5.3 (но это не работает в Gradle 5.6) ..

task jacocoTestReport(type: org.gradle.testing.jacoco.tasks.JacocoReport) {
   dependsOn = subprojects.test
   additionalSourceDirs = files(subprojects.sourceSets.main.allSource.srcDirs)
   sourceDirectories = files(subprojects.sourceSets.main.allSource.srcDirs)
   classDirectories =  files(subprojects.sourceSets.main.output)
   executionData = files(subprojects.jacocoTestReport.executionData)
   reports {
      html.enabled = true
      xml.enabled = true
      csv.enabled = false
   }
   onlyIf = {
      true
   }
   doFirst {
      executionData = files(executionData.findAll {
          it.exists()
      })
   }
}

jacoco теперь выдает ошибку

Unable to read execution data file /Users/dean/workspace/webpieces/core/output/jacoco/test.exec

Кажется, что раздел doFirst больше не работает, хотя он работал в 5.3.1. Как нам исправить эту проблему, чтобы работать в 5.6 Gradle, хотя? А еще лучше, как нам заставить его работать совместимым с Gradle 6 способом (ie. Близко к более новому файлу build.gradle, на который я ссылался выше).

ПРИМЕЧАНИЕ. Файл build.gradle, на который я ссылаюсь выше Находится в ветке fixJacoco, поэтому, если вы клонируете проект, вам нужно извлечь fixJacoco и запустить сборку ./gradlew и проверить результаты на webpieces / output / jacoco, и самое дальнее, что я получил, - это создание отчета, в котором все 0 строк были покрыты объединенный отчет (в то время как в каждом проекте jacoco показаны закрытые строки).

спасибо, Дин

...