【问题标题】:SonarQube and Jacoco failed to identify the kotlin-classes directorySonarQube 和 Jacoco 无法识别 kotlin-classes 目录
【发布时间】:2019-12-06 15:05:07
【问题描述】:

我正在使用 Jacoco v0.8.4 和 Sonarcube v2.7.1。

我正在为 SonarCube 使用以下配置。

property "sonar.sources", "src/main/java"
property "sonar.binaries","build/intermediates/javac,app/build/tmp/kotlin-classes"
property "sonar.java.binaries", "build/intermediates/javac,app/build/tmp/kotlin-classes"
property "sonar.tests", "src/test/java" // where the tests are located
property "sonar.java.test.binaries", "build/intermediates/javac,app/build/tmp/kotlin-classes"
property "sonar.jacoco.reportPath", "build/jacoco/testDevDebugUnitTest.exec"
property "sonar.java.coveragePlugin", "jacoco"
property "sonar.android.lint.report", "build/reports/lint results.xml"
     

SonarCube 分析失败,原因是 sonar.java.binaries

的值无效

> No files nor directories matching 'app/build/tmp/kotlin-classes'

但 'app/build/tmp/kotlin-classes' 存在于我的项目文件夹中。

但是,如果我从属性中删除 kotlin 东西,那么它会成功地为 Java 文件提供覆盖。

我在 Kotlin 覆盖方面做错了吗?

【问题讨论】:

    标签: java android kotlin sonarqube jacoco


    【解决方案1】:

    您还需要在下面的路径中添加您的构建变体文件夹

    property "sonar.java.test.binaries", "build/intermediates/classes/test/, app/build/tmp/kotlin-classes/<BuildVariant>UnitTest"
    property "sonar.java.binaries", "build/intermediates/classes/<BuildVariant>/, app/build/tmp/kotlin-classes/<BuildVariant>/"
    property "sonar.binaries", "build/intermediates/classes/<BuildVariant>/, app/build/tmp/kotlin-classes/<BuildVariant>/"
    

    还有一件事是尽量避免使用带有空格的文件名,例如lint results.xml

    【讨论】:

    • 嗨 Archit 你能分享一个在声纳上可见的测试覆盖率的示例项目,它显示 kotlin 类和测试用例在它的仪表板上可见吗?
    猜你喜欢
    • 2018-08-29
    • 1970-01-01
    • 1970-01-01
    • 2020-10-13
    • 2021-05-13
    • 2015-11-09
    • 2014-07-10
    • 2021-08-26
    • 2016-03-27
    相关资源
    最近更新 更多