【问题标题】:How to add multiple test reports to SonarQube如何向 SonarQube 添加多个测试报告
【发布时间】:2021-05-13 23:58:47
【问题描述】:

我正在使用 SonarScanner 扫描 Go 项目。 添加使用go test -json ./... > artifacts/test/report.json 生成的单元测试报告在使用配置设置sonar.go.tests.reportPaths=artifacts/test/report.json 时按预期工作。

但是,我有第二份(安全)测试报告(来自gosec -fmt=sonarqube -no-fail -out=artifacts/test/gosec-report.json ./...),我想将其添加到报告中。因此,我使用以下声纳扫描仪调用:sonar.go.tests.reportPaths=artifacts/test/*.json

遗憾的是它既没有收到单元测试报告report.json,也没有收到安全测试报告gosec-report.json

如何将两个报告都添加到 SonarQube?

sonar-scanner \
-Dsonar.exclusions=**/*_test.go \
-Dsonar.projectKey="my-project" \
-Dsonar.qualitygate.wait=true \
-Dsonar.sources=. \
-Dsonar.test.inclusions=**/*_test.go \
-Dsonar.tests=. \
-Dsonar.go.coverage.reportPaths=artifacts/test/coverage.out \
-Dsonar.go.tests.reportPaths=artifacts/test/*.json

【问题讨论】:

    标签: go sonarqube sonarqube-scan


    【解决方案1】:

    大多数reportPaths 参数采用逗号分隔的路径列表。 来自documentation 的示例:

    sonar.go.tests.reportPaths - 以逗号分隔的单元测试报告文件路径列表。路径可以是绝对的,也可以是相对于项目根目录的。

    sonar.go.coverage.reportPaths - 覆盖报告文件路径的逗号分隔列表。从 SonarGo 1.1 开始支持路径通配符(见上文)。

    你必须使用这个:

    sonar-scanner \
    -Dsonar.exclusions=**/*_test.go \
    -Dsonar.projectKey="my-project" \
    -Dsonar.qualitygate.wait=true \
    -Dsonar.sources=. \
    -Dsonar.test.inclusions=**/*_test.go \
    -Dsonar.tests=. \
    -Dsonar.go.coverage.reportPaths=artifacts/test/coverage.out \
    -Dsonar.go.tests.reportPaths=artifacts/test/report.json,artifacts/test/gosec-report.json
    

    【讨论】:

      猜你喜欢
      • 2017-06-30
      • 2018-09-07
      • 1970-01-01
      • 2017-08-14
      • 2019-07-07
      • 1970-01-01
      • 2015-07-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多