SonarQube 没有找到 Kotlin Junit5 测试
SonarQube not finding Kotlin Junit5 tests
我正在尝试在 Github 中设置示例 android 工作室项目,它还集成了连接到 SonarQube 的 CI。
我在使用 sonarQube 时遇到问题,因为它说没有应用测试覆盖率。但是,在 kotlin 和 Juni5 中有,但是无法设置 sonar.tests 来识别它。
这是 sonar-project.properties
测试 运行 在本地和 CI 构建项目分支时都很好。
我也添加了这个
Gradle 是用 Kotlin-DSL 编写的。
如果您使用 gradle,则无需在 sonar-project.properties
中定义来源和测试。 gradle sonarqube 任务将根据您的源集自动拾取它们。
我认为您缺少的是生成覆盖率的工具,sonarqube 不会为您生成覆盖率数据。 SonarQube 在 Java 中使用,例如。 JaCoCo 所以你还需要为此应用一个插件。
所以你的 build gradle(看,这是 groovy dsl,但我会在 kotlin 中提供一个 link)看起来像下面的代码片段。这将自动生成所有内容
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 报告并通过 属性 sonar.coverage.jacoco.xmlReportPaths
提供此 xml 报告 Sonarqube doc
我正在尝试在 Github 中设置示例 android 工作室项目,它还集成了连接到 SonarQube 的 CI。
我在使用 sonarQube 时遇到问题,因为它说没有应用测试覆盖率。但是,在 kotlin 和 Juni5 中有,但是无法设置 sonar.tests 来识别它。
这是 sonar-project.properties
测试 运行 在本地和 CI 构建项目分支时都很好。
我也添加了这个
Gradle 是用 Kotlin-DSL 编写的。
如果您使用 gradle,则无需在 sonar-project.properties
中定义来源和测试。 gradle sonarqube 任务将根据您的源集自动拾取它们。
我认为您缺少的是生成覆盖率的工具,sonarqube 不会为您生成覆盖率数据。 SonarQube 在 Java 中使用,例如。 JaCoCo 所以你还需要为此应用一个插件。
所以你的 build gradle(看,这是 groovy dsl,但我会在 kotlin 中提供一个 link)看起来像下面的代码片段。这将自动生成所有内容
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 报告并通过 属性 sonar.coverage.jacoco.xmlReportPaths
提供此 xml 报告 Sonarqube doc