grails - 仅当覆盖率检查通过时才能成功构建 grails 项目

标签 grails code-coverage cobertura

我正在开发一个 Grails 应用程序。我们使用 cobertura 生成代码覆盖率报告。现在我想修改 grails 项目,这样如果代码覆盖率低于 90%,构建就会失败。 我怎样才能在grails中实现这一点?

最佳答案

我不认为代码覆盖插件直接支持这一点,但是通过连接到强大的 grails 构建事件基础设施就很容易做到。通过将其放入 scripts/_Events.groovy 中,如果覆盖率低于某个阈值,构建将会失败:

eventStatusFinal = { message ->
  if (message ==~ /.*Cobertura Code Coverage Complete.*/) {
    def report = new XmlSlurper().parse(new File("target/test-reports/cobertura/coverage.xml"))
    if (Float.parseFloat(report.'@line-rate'.text()) < 0.90) {
      throw new RuntimeException("coverage too low!")
    }
  }
}   

这需要您在 grails-app/conf/BuildConfig.groovy 中打开 XML 报告生成:

coverage {
    xml = true
}

根据需要调整属性(line-ratebranch-rate)和值。

关于grails - 仅当覆盖率检查通过时才能成功构建 grails 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12077457/

相关文章:

ant - Gradle - 如何运行名​​称为 "-"的 ant 任务

grails - 如何设置Grails代理有错误和Grails安装

grails - 简单的 Hello World Grails 表单提交

c++ - 一些 googletest 宏的覆盖分析显示分布在多行时覆盖不完整 - 为什么?

java - 如何使用 Cobertura Maven 插件查看 HTML 覆盖率报告?

java - mvn 构建成功但未执行任何测试

grails - 指定一个 bean 来绑定(bind)数据

grails - 如何使Grails条件作为左联接执行?

code-coverage - 使用 lcov 报告代码覆盖率时出错

java - Cobertura 仍然跟踪已删除的文件