5

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

4

1 回答 1

4

我不认为代码覆盖插件直接支持这一点,但通过连接到强大的 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!")
    }
  }
}   

这需要您在以下位置打开 XML 报告生成grails-app/conf/BuildConfig.groovy

coverage {
    xml = true
}

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

于 2012-08-22T18:06:21.983 回答