将源和测试集添加到sonarqube gradle配置的正确语法是什么?

时间:2017-01-30 05:21:19

标签: javascript jenkins gradle sonarqube sonarqube-scan

我有一个jhipster项目,在项目中定义了一个sonarqube任务。我们在/ src / main / ui / src / ...目录下构建了一个react UI,并在/ src / main / ui / src / test / ...下进行了测试。我们的声纳属性如下:

sonarqube {
    properties {
        property "sonar.host.url", "https://our_sonar_server"
        property "sonar.projectKey", "MyProjectGroup:MyProject"
        property "sonar.projectName", "MyProject"
        property "sonar.login", sonarLogin
        property "sonar.password", sonarPassword

        property "sonar.links.scm", "https://mygithub/myProject.git"
        property "sonar.links.scm_dev", "https://mygithub/MyProject.git"
        property "sonar.links.ci", ciLink

        if (pullRequest != null) {
            property "sonar.analysis.mode", "preview"
            property "sonar.github.pullRequest", pullRequest
            property "sonar.github.repository", "MyProjectGroup/MyProject"
            property "sonar.github.oauth", "my_oauth_hash"
            property "sonar.github.endpoint", "https://mygithubapi/v3"
        }
    }
}

我目前,声纳只选择标准/ src / main / java下的java。我试过添加     property" sonar.sources"," src / main / ui / src / * .js"     property" sonar.test"," src / main / ui / src / test / **" 以及一些变化。然而,jenkin构建通过一个shell调用" ./ gradlew sonar -Pprod -x test"来调用它。失败,错误如"无效值"或类似的。我无法找到正确语法的示例。

编辑:我能够让声纳版本通过PR使用     property" sonar.sources"," src / main / ui / src"     property" sonar.test"," src / main / ui / src / test"

但是,在检查声纳服务器上的项目时,我仍然没有看到任何引用的javascript文件。

1 个答案:

答案 0 :(得分:1)

合并上次编辑后,js文件显示在sonarqube中。 js测试也出现了,尽管它们没有显示任何覆盖百分比。只是单元测试的数量和通过的数量。可能还需要一些更多的配置,但这并不是原始问题的一部分。

在与我的经理交谈之后,我们决定将源集缩小到两个子目录,“src / main / ui / src / app”和“src / main / ui / src / layouts”,以便测试不会显示在源集下。文档建议您可以添加逗号分隔列表,因此我创建了一个外部属性并引用了实际属性中的那些:

ext.jsAppSrc = "src/main/ui/src/app, src/main/ui/src/layout"
ext.jsLayoutSrc = "src/main/ui/src/layout"
ext.jsTest = "src/main/ui/test"
...
property "sonar.sources", jsAppSrc, jsLayoutSrc
property "sonar.test", jsTest

道具评估正确,但声纳任务因错误而失败     找不到参数的方法property()[sonar.sources,src / main / ui / src / app,src / main / ui / src / layout on org.sonarqube.gradle.SonarQubeProperties。

然后我重构将逗号分隔列表放在一个属性中,然后成功完成。

ext.jsAppSrc = "src/main/ui/src/app, src/main/ui/src/layout"
ext.jsTest = "src/main/ui/test"
...
property "sonar.sources", jsAppSrc
property "sonar.test", jsTest