【发布时间】:2015-09-09 10:20:29
【问题描述】:
我已经一年多没有在包含混合 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 中为 Groovy 或混合的 Java/Groovy 项目进行的测试,是否有任何其他方法可以获得“单元测试成功”?
【问题讨论】:
标签: java unit-testing groovy sonarqube