SonarQube找不到Kotlin Junit5测试。

问题描述 投票:0回答:1

我试图在Github上建立一个android studio示例项目,该项目还集成了与SonarQube连接的CI。

我在使用SonarQube时遇到了问题,因为它说没有应用测试覆盖率,但是在kotlin和Juni5中是有的,但是没有办法设置测试覆盖率。然而,在kotlin和Juni5中是有的,但没有办法设置一个测试覆盖率。 声纳测试 因为认识到这一点。

这是它的 声纳工程.属性

enter image description here

测试在本地和CI中都能正常运行,当项目的一个分支被构建时。

另外,我还添加了这个

enter image description here

Gradle是用Kotlin-DSL编写的。

android kotlin sonarqube junit5
1个回答
1
投票

如果你使用的是gradle,就不需要在Github中定义源和测试。sonar-project.properties. gradle sonarqube任务会根据你的sourcesets自动拾取它们。

我认为你缺少的是一个工具来生成覆盖率,sonarqube不会为你生成覆盖率数据。SonarQube利用在Java中,例如。 JaCoCo,所以你还需要应用一个插件。

所以你的 建立Gradle (看哪,这是groovy dsl,但我将提供一个kotlin中的链接)将看起来像下面的代码片段。这将自动生成一切

plugins {
    id 'java'
    id 'jacoco'
    id 'eclipse' // optional (to generate Eclipse project files)
    id 'idea' // optional (to generate IntelliJ IDEA project files)
    id "org.sonarqube" version "2.8"
}

repositories {
    jcenter()
}

dependencies {
    testImplementation('org.junit.jupiter:junit-jupiter:5.6.0')
}

test {
    useJUnitPlatform()
    testLogging {
        events "passed", "skipped", "failed"
    }
}

sonarqube {
    properties {
        /*
        UPDATE SECTION START
        Please fill in your data
         */
        property "sonar.projectName", "SonarCloud Github Actions with gradle"
        property "sonar.projectKey", "aepfli_SonarCloud-GitHubActions-Gradle-example"
        property "sonar.organization", "aepfli"
        /*
        UPDATE SECTION END
         */
        property "sonar.host.url", "https://sonarcloud.io"

    }
}

jacocoTestReport {
    reports {
        xml.enabled = true
    }
}

另外,如果你想找一个kotlin DSL的例子,我可以推荐这个来自于 JUnit Pioneer.

我还是不知道JaCoCo对kotlin的支持有多好,如果在Kotlin的世界里有一个不同的工具,比如JaCoCo,你也可以尝试生成和XML报告,并通过属性提供这个xml报告。sonar.coverage.jacoco.xmlReportPaths 基于 Sonarqube doc

© www.soinside.com 2019 - 2024. All rights reserved.