【发布时间】:2018-06-05 10:14:04
【问题描述】:
我已经配置了一个 Jenkins 项目,在 gradle 构建和测试之后,它使用以下规范调用“Execute SonarQube Scanner”:
sonar.projectKey=my_project_key
sonar.projectName=my_Android
sonar.projectVersion=1.0
sonar.sources=app/src
sonar.java.binaries=app/build/intermediates/classes/debug
sonar.coverage.exclusions=app/src/test/**,app/src/androidTest/**,app/src/main/res/**
这成功运行 SonarQube 并向 IPaddress:9000 生成报告,该报告测量:错误、漏洞、债务、代码气味和重复,就像它应该做的那样。但是,此报告中没有任何地方定义测试涵盖的代码。 SonarQube 正在成功运行 Kotlin 插件并查看代码库本身,但未确定覆盖范围。使用 Kotlin Android 时是否可以使用 SonarQube 收集这些信息?
我确实尝试安装 Jacoco,但在 SonarQube 结果中没有看到任何新数据。
【问题讨论】:
-
您找到解决方案了吗?我陷入了确切的问题,我得到了其他报告,但没有覆盖范围
-
@giroxiii 在发布问题后不久,我放弃了尝试使用 Sonar 获得 Kotlin 代码覆盖率的尝试。然而,我已经获得了许多使用 Java 和 JaCoCo 的项目。回顾一下我的 sonar.properties 文件,我可能已经能够通过在 sonar.properties 文件中添加以下行来引用 JaCoCo 任务的输出来解决此问题: ``` sonar.jacoco.reportPath=build/jacoco/ test.exec ``` 我不确定这是否适用于 Kotlin,但它有助于 Java 覆盖。我希望这会有所帮助,祝你好运!
-
较新版本的 Sonarqube 有一个 Kotlin 插件,它与 Jacoco 插件集成并正确检测 Kotlin 项目。我已经修改了我的答案以反映这一点
标签: android jenkins sonarqube kotlin code-coverage