【问题标题】:Gradle / SonarQube documentation issue with custom source sets自定义源集的 Gradle / SonarQube 文档问题
【发布时间】:2016-08-30 12:08:21
【问题描述】:

我要解决的具体问题是集成测试未显示在服务器上。

此外,此处给出的示例代码似乎是错误的: SonarQube: Analyzing Custom Source Sets

具体是这个代码示例:

sonarqube {
    properties {
        properties["sonar.sources"] += sourceSets.custom.allSource.srcDirs
        properties["sonar.tests"] += sourceSets.integTest.allSource.srcDirs
    }
}

运行此结果:

Invalid value of sonar.tests for... 

这实际上应该是什么?根据我正在阅读的另一个论坛,这应该是逗号分隔目录的列表。所以我尝试了:

sonarqube {
  properties {
    properties["sonar.tests"] += sourceSets.integrationTest
                                                 .allSource.srcDirs.join(",")
  }
}

...同样的错误。请注意,ingegrationTest 对我们的构建是正确的。

【问题讨论】:

  • 你能试试 properties["sonar.tests"] += "," + sourceSets.integrationTest .allSource.srcDirs.join(",")
  • 试过这个。我得到了同样的结果。
  • properties { properties["sonar.tests"]... } 看起来很奇怪。它不应该是属性 {property["sonar.tests"]...} 吗??
  • 我已经测试过,一切正常。您能否在“sonar.tests for ...的无效值”之后提供其余的错误消息。您可能必须过滤不存在​​的文件夹,并确保不提供重复项。
  • @JulienH.-SonarSourceTeam 昨天下午我得到了一些今天应该很有启发性的测试代码。我有它时会发布它。

标签: gradle sonarqube sonarqube-scan


【解决方案1】:

以下代码有效:

sonarqube {

    properties {
        properties["sonar.tests"] += sourceSets.integrationTest.allSource.srcDirs.findAll({it.exists()})

        if (file("$project.buildDir/jacoco/test.exec").exists())
            property "sonar.jacoco.reportPath", "$project.buildDir/jacoco/test.exec"
        if (file("$project.buildDir/jacoco/integrationTest.exec").exists())
            property "sonar.jacoco.itReportPath", "$project.buildDir/jacoco/integrationTest.exec"
    }
}

我将它导入到每个需要它以避免使用子项目的项目中。根据 Gradle 文档,使用 subProjects 和/或 allProjects 会导致耦合,从而对并行性产生负面影响。 IDK 如果导入更好,但我希望如此。

【讨论】:

  • 尝试类似:properties["sonar.tests"] += sourceSets.integrationTest.allSource.srcDirs.findAll({it.exists()})
  • NullPointerException 如果在属性块之外完成。现在在里面试试。
  • 这可行,但我发现在属性块中使用 properties["some.property"] 会令人困惑。它仍然比我得到的要好。
  • @JulienH.-SonarSourceTeam 你想要奶酪点还是我应该更新答案?
猜你喜欢
  • 1970-01-01
  • 2016-09-05
  • 2020-06-13
  • 1970-01-01
  • 2017-06-01
  • 1970-01-01
  • 2015-10-31
  • 1970-01-01
  • 2013-09-09
相关资源
最近更新 更多