Groovy 中编写的测试没有单元测试成功数据

No Unit Test Success data for tests written in Groovy

一年多来我没有在混合 Java 和 Groovy 文件的项目中使用 Sonar,很高兴 SonarQube 能够在同一个 [=28] 中支持多种语言=](而不是对 Java 和 Groovy 进行两次单独的分析)。不幸的是我发现了回归。

过去 Java 项目的测试用 Spock/Groovy 编写,通常在测试摘要中报告。目前,该项目缺少整个 "Unit test success" 部分。看来问题是这些数据只提供了 SurefireSensor。 Java 在 Spock 中进行测试的项目中有警告:

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 甚至不会被执行并且 "Unit test success" 完全丢失。该问题可以通过以下方式重现: 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 或混合 Java/Groovy 项目的 Groovy/Spock 测试,是否有任何其他方法获得 "Unit test success"?

这是 Groovy 插件的已知限制。有一张未结票:http://jira.sonarsource.com/browse/SONARGROOV-2 它应该在下一个 sprint 中修复。