正如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。
答案 0 :(得分:1)
您确实可以导入未知文件(现在是默认行为),但您实际上不能对其进行任何操作,除非您发现,其中包含&#39;用于定义语言的插件和&#34;声明&#34;文件扩展名。
如SonarQube文档中的Other Plugins页面所列,有一个plugin that defines Ruby as a language。然而,它是2年前的最后一次触及&amp;根据其README.md,最后测试4.5.5。目前的版本是6.5。