【问题标题】:Groovy Gradle Sonar-runner Unit Testing and Code CoverageGroovy Gradle Sonar-runner 单元测试和代码覆盖率
【发布时间】:2013-11-28 11:11:17
【问题描述】:

您好,我已经建立了一个使用 sonar-runner 进行分析的 groovy 项目,它适用于复杂性、代码行数等,但代码覆盖率显示“-”并且单元测试为 0%。 这是声纳运行器属性文件 我正在使用 Groovy 插件 0.6 声纳亚军 2.3 声纳 Qube 3.7 雅克

sonar.projectKey=Groovy
sonar.projectName= Groovy SonarQube Runner
sonar.projectVersion=1.0

sonar.sources=src
sonar.language=grvy
sonar.binaries=target/classes
sonar.libraries=lib
sonar.junit.reportsPath=test/unit
sonar.core.codeCoveragePlugin=jacoco
sonar.jacoco.reportPath=test/coverage/jacoco.exec

sonar.sourceEncoding=UTF-8

我想知道是否有人可以指出我正确的方向

【问题讨论】:

    标签: unit-testing groovy sonarqube jacoco sonar-runner


    【解决方案1】:

    使用 SonarQube Runner 运行 SonarQube 分析时,您应该注意测试没有执行:这就是您没有得到结果的原因。

    这意味着您必须确保它们在分析之前已经执行,并且结果已经导出。

    仅供参考,您可以在此处查看示例项目:https://github.com/SonarSource/sonar-examples/tree/master/projects/languages/groovy

    【讨论】:

    • 是的,我已经使用了这些示例,并且项目运行良好,除了代码覆盖率和单元测试分别为 - 和 0%。 SonarSorce repo 中的这些示例项目不会产生单元测试或代码覆盖率(基于 sonar-runner.properties 文件)我一开始就尝试了 Jacoco,但我猜它只适用于 Java 项目。我看过其他 groovy/gradle 示例,但是他们在项目中添加了一个 pom,安装了代码覆盖插件等。我想知道是否有一种方法可以仅使用声纳运行器和(Cobertura || Emma 可能)产生代码覆盖率和单元测试?
    • 另一个问题,在同一个项目中,“问题”指标报告为 0。在我所有的 groovy 项目中似乎都是相同的情况?我添加了 133 条 CodeNarc 规则和“声纳方式”,但我的所有 groovy 项目仍然有 0 个问题。
    • 我同意Fabrice,但正如用户所说,问题仍然存在。我有一个 Groovy 项目,并且我有有效的单元和集成测试。我事先运行它们。 Gradle 的构建范围中的单元测试和目标 Tomcat 的 JVM 范围中的 IT 测试(通过将 jacocoagent.jar 设置/传递到目标 JVM 的范围)。一旦我停止 Tomcat,它就会成功地将 IT 代码覆盖率数据刷新到 jaococoIT.exec 文件中。在停止 Target JVM 之前,您将不会获得有效的 Jacoco IT exec 文件,即使它显示了有效的文件大小。在此之后,当我使用有效的 sonar.* 属性运行 sonarRunner Gradle 任务 / sonar-runner 时,同样的问题。
    • @Fabrice 这正是我正在寻找的,如果你能帮忙的话。我在运行任何 jacoco 和声纳分析之前运行测试。尽管如此,单元测试覆盖率和 IT 测试覆盖率信息仍然不存在或为 0%
    • @Fabrice - SonarSource 团队 - 链接已损坏。
    猜你喜欢
    • 2016-11-08
    • 2013-11-23
    • 2013-10-24
    • 1970-01-01
    • 1970-01-01
    • 2017-11-18
    • 1970-01-01
    • 2016-03-06
    • 1970-01-01
    相关资源
    最近更新 更多