Я пытаюсь запустить анализ моего кода, используя jacoco плагин в gradle и sonarqube .Мои тесты написаны на Groovy .Я автоматизировал процесс с использованием конвейеров битового сегмента, поэтому каждый раз, когда я фиксирую код, запускаются тесты, а в конце запускаются анализ jacoco и sonarqube, что приводит к выводу результатов отчета в SonarCloud.Охват отображается (в процентах, со ссылкой на классы) и сравнивается с веткой dev (я явно указал dev как долгоживущую ветку в SonarCloud).Также показан общий охват (после слияния).
Проблема в том, что когда я объединяю dev с моей веткой (что-то еще объединяется с dev, поэтому я синхронизирую), тогда покрытие ветви отображается как "-", т.е. пусто.Кажется, я не могу найти проблему, вместо того, чтобы предположить, что у коммита (который происходит от слияния dev с моей веткой) есть 2 родителя (предыдущий коммит и другая недолговечная ветвь, которая была слита в dev), и каким-то образомзапутывается.После того, как я что-то зафиксирую, даже глупую строку кода, анализ снова будет показан корректно.
Я хотел бы знать, решил ли кто-нибудь эту проблему или знает, почему это происходит.Спасибо!
В build.gradle я добавил:
plugins {
id "org.springframework.boot" version "2.0.2.RELEASE"
id "org.sonarqube" version "2.7.1"
id "application"
id "jacoco"
}
apply plugin: 'java'
apply plugin: 'groovy'
apply plugin: 'jacoco'
jacoco {
toolVersion = "0.8.3"
reportsDir = file("$buildDir/customJacocoReportDir")
}
jacocoTestReport {
reports {
xml.enabled false
csv.enabled false
html.destination file("$buildDir/jacocoHtml")
}
}
sonarqube {
properties {
// properties related to credentials
}
}
, и мой файл конвейеров битового сегмента:
image: java:8
clone:
depth: full # SonarCloud scanner needs the full history to assign issues properly
definitions:
caches:
sonar: ~/.sonar/cache # Caching SonarCloud artifacts will speed up your build
steps:
- step: &build-test-sonarcloud
name: Build, test and analyze on SonarCloud
caches:
- gradle
- sonar
script:
- ./gradlew clean test
- ./gradlew jacocoTestReport
- ./gradlew sonarqube
artifacts:
- build/libs/**
pipelines:
default:
- step: *build-test-sonarcloud
pull-requests:
'**':
- step: *build-test-sonarcloud