我正在开发一个 grails 应用程序。我们使用 cobertura 来生成代码覆盖率报告。现在我想修改 grails 项目,如果代码覆盖率低于 90%,构建应该会失败。我怎样才能在 grails 中实现这一点?
问问题
376 次
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 回答