【问题标题】:No Unit Test Success data for tests written in Groovy没有用 Groovy 编写的测试的单元测试成功数据
【发布时间】: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


    【解决方案1】:

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

    【讨论】:

    • 感谢您的回答。您是否打算在混合测试套件(Spock + JUnit)的情况下使其也能工作(汇总结果),或者它是另一个任务的范围?
    • 您有可以作为示例的示例项目吗?如果你可以分享它,我会更新票证。
    • 为改进 Gradle 插件而创建的票证:jira.sonarsource.com/browse/SONARGRADL-7
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多