我没有在混合Java和Groovy文件的项目中使用Sonar超过一年,SonarQube能够在同一个项目/模块中支持多种语言,而不是进行两次单独的分析,这很棒。 Java和Groovy)。不幸的是,我发现了回归。
过去对于使用Spock / Groovy编写的测试的Java项目,它们通常在测试摘要中报告。目前,对于该项目,整个"单元测试成功"部分缺失。似乎问题是这些数据仅提供但SurefireSensor。在Spock中进行测试的Java项目中有警告:
INFO - Sensor SurefireSensor
INFO - parsing /home/foo/my-gradle-project/build/test-results
WARN - Resource not found: io.foobar.FileSystemPollerSpec
WARN - Resource not found: io.foobar.PropertiesFolderFinderSpec
查看代码SurefireSonsor仅收集Java源文件并跳过其他文件的结果(过去收集的文件中只显示了源文件)
类似的情况是完全在Groovy中的项目。在那种情况下,SurefireSonsor甚至没有被执行,并且"单元测试成功"完全没有了。该问题可以通过以下方式复制: https://github.com/SonarSource/sonar-examples/tree/master/projects/languages/groovy/groovy-sonar-runner-jacoco
使用SonarQube 5.1.1,Java插件3.0,Groovy插件1.1.1和SonarRunner 2.4进行测试。
还有其他方法可以获得"单元测试成功"用于Groovy / Spock for Groovy或混合Java / Groovy项目的测试?
答案 0 :(得分:1)
这是Groovy插件的已知限制。有一张开放票:http://jira.sonarsource.com/browse/SONARGROOV-2 它应该在下一个sprint中修复。