使用通用测试数据扫描Sonarqube 6.4中ruby文件的覆盖率数据

时间:2017-08-31 19:44:12

标签: java ruby xml sonarqube sonarqube-scan

正如sonarqube通用测试数据中描述的here所示,如果你有一个符合格式的xml,你似乎可以使用任何扩展名扫描任何类型文件的覆盖数据。但是,尝试使用sonar-scan命令失败,并出现以下错误:

Caused by: java.lang.IllegalStateException: Line 2 of report refers to a file with an unknown language: lib/app.rb

我的sonar-project.properties看起来像这样:

sonar.host.url=http://127.0.0.1:9000
sonar.projectKey=some-ruby-app
sonar.projectName=some-app
sonar.projectVersion=1.0
sonar.import_unknown_files=true
sonar.sources=lib
sonar.tests=test
sonar.coverageReportPaths=coverage/generic-coverage.xml
# Encoding of the source files
sonar.sourceEncoding=UTF-8

我的coverage / generic-coverage.xml如下所示:

<coverage version="1">
  <file path="lib/app.rb">
    <lineToCover lineNumber="3" covered="true" branchesToCover="2" coveredBranches="1"/>
  </file>
</coverage>

符合xsd。

根据其他一些流程,如these,如果没有指定语言的sonarqube插件,似乎不可能。但是,此另一个thread讨论了属性sonar.import_unknown_file,但是在sonar-project.properties中发送它不起作用,而且在SonarQube 6.4中,该选项在Settings > Exclusions > Files > Import unknown files to true中不存在文档说明here

1 个答案:

答案 0 :(得分:1)

您确实可以导入未知文件(现在是默认行为),但您实际上不能对其进行任何操作,除非您发现,其中包含&#39;用于定义语言的插件和&#34;声明&#34;文件扩展名。

如SonarQube文档中的Other Plugins页面所列,有一个plugin that defines Ruby as a language。然而,它是2年前的最后一次触及&amp;根据其README.md,最后测试4.5.5。目前的版本是6.5。