我正在开发一个 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-rate
、branch-rate
)和值。
关于grails - 仅当覆盖率检查通过时才能成功构建 grails 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12077457/