Sonarqube в Gradle Project выдает ошибку Классы не совпадают с данными выполнения - PullRequest
0 голосов
/ 17 октября 2019

У меня есть многомодульный проект Gradle. В этот проект я включил и клевер, и сонаркуб. Когда я запускаю анализ sonarqube без интеграции клевера, я получаю покрытие должным образом, но когда я интегрирую клевер также в проект, я получаю сообщение об ошибке Следующие классы не соответствуют данным выполнения. И охват составляет 0.

Ниже приведена моя интеграция sonarqube и Clover.

apply plugin: 'org.sonarqube'-
apply plugin: 'jacoco'
apply plugin: 'com.bmuschko.clover'

def allTestCoverageFile = "${rootProject.projectDir}/target/jacoco/allTestCoverage.exec"
task jacocoMerge(type: JacocoMerge, group: 'verification') {
    destinationFile = file(allTestCoverageFile)
    executionData = project.fileTree(dir: '.', include:'**/build/jacoco/test.exec')
}

jacoco {
    toolVersion = "0.8.3"
}

sonarqube {
    properties {
        property "sonar.jacoco.reportPaths", allTestCoverageFile
        property "sonar.working.directory", "${rootProject.projectDir}/target/sonar"
    }
}

buildscript {
 dependencies {
        classpath("com.google.protobuf:protobuf-gradle-plugin:0.8.6")
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
        classpath ("org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.7.1")
        classpath ("com.bmuschko:gradle-clover-plugin:2.2.3")
    }
}
dependencies {
    clover 'org.openclover:clover:4.2.0'
}

clover {
    // Although Clover is now open source the plugin 
    // still expects to find the license file. 
    // Any file will work.
    licenseLocation = File.createTempFile('clover', '.license').absolutePath

    includes=['*/*.java']

    //Enabling both html and xml report
    report {
      html = true
      xml = true
    }
}

subprojects {
    apply plugin: 'java'
    apply plugin: 'jacoco'
    apply plugin: 'com.bmuschko.clover'

sonarqube {
        properties {
            property "sonar.jacoco.reportPaths", allTestCoverageFile
        }
    }

    test.finalizedBy(jacocoMerge)

    dependencies {
    clover 'org.openclover:clover:4.2.0'
    }
}

Я предполагаю, что интеграция Clover также выполняет модульные тесты по умолчанию, которые перезаписывают файлы классов,Как мне выполнить анализ сонаркуба и клевера, с правильными данными покрытия для сонаркуба.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...