Я хотел бы показать тестовое покрытие для сборки нескольких загрузочных приложений Spring с Gradle 6.0. В настоящее время мы используем JUnit5.
Покрытие теста показывает 0% в SonarQube, хотя существует несколько первых тестов.
Файлы build.gradle в проекте верхнего уровня (https://github.com/OpenReqEU/eclipse-plugin-vogella/blob/master/server/build.gradle ) имеет следующий вход:
plugins {
id "org.sonarqube" version "2.7"
id 'jacoco'
}
repositories {
jcenter()
}
subprojects {
apply plugin: 'jacoco'
apply plugin: 'java'
apply plugin: 'eclipse'
repositories {
jcenter()
maven { url 'https://repo.spring.io/snapshot' }
maven { url 'https://repo.spring.io/milestone' }
maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' }
maven { url 'http://oss.jfrog.org/artifactory/oss-snapshot-local/' }
}
jacocoTestReport {
reports {
xml.enabled true
xml.destination file("${buildDir}/coverage-reports/coverage.xml")
//html.destination file("${buildDir}/coverage-reports")
}
}
ext {
springBootVersion = '2.1.1.RELEASE'
}
sourceCompatibility = 1.8
}
wrapper {
gradleVersion = '6.0'
}
В сборке Jenkins мы устанавливаем следующие параметры:
sonar.projectKey=eclipse-plugin-vogella
sonar.sources=server/com.vogella.prioritizer.server/src/main,server/com.vogella.prioritizer.server.bugzilla/src/main,server/com.vogella.prioritizer.server.issue.api/src/main
sonar.java.binaries=com.vogella.prioritizer.server/build/classes/java/main,com.vogella.prioritizer.server.bugzilla/build/classes/java/main,com.vogella.prioritizer.server.issue.api/build/classes/java/main
sonar.tests=server/com.vogella.prioritizer.server/src/test,server/com.vogella.prioritizer.server.bugzilla/src/test
sonar.coverage.jacoco.xmlReportsPath=server/com.vogella.prioritizer.server.bugzilla/build/jacoco/test.exec,server/com.vogella.prioritizer.server/build/jacoco/test.exec,server/com.vogella.prioritizer.server.issue.api/build/jacoco/test.exec
В результате сборки отображается ошибка: INFO: parsing [ /home/jenkins/workspace/issue-prioritizer/coverage-reports/coverage.xml] ОШИБКА: путь к отчетам не найден или не является каталогом: /home/jenkins/workspace/issue-prioritizer/coverage-reports/coverage.xml
Я вижу, что каждый проект имеет сгенерированный файл $ {buildDir} /coverage-reports/coverage.xml, но файл root пуст, что ожидается, поскольку я не настроил ничего, связанного с this.
В какой-то момент я добавил задачу копирования, которая скопировала один из сгенерированных файлов xml из одного проекта в папку root, но задание на сборку пожаловалось, что классы не совпадают.
Кто-нибудь знает, как этот вопрос можно решить? Я предполагаю, что должен добавить конфигурацию, чтобы добавить root файл покрытия. xml, который является совокупностью отдельных, но я не нашел решения для этого.
Я также пытался применить jacoco в проект root, но также не удалось, поскольку проект root не является проектом Java.