5
私はgrailsアプリケーションを開発中です。我々は、コードカバレッジレポートを生成するためにcoberturaを使用します。今、コードカバレッジが90%以下であれば、ビルドが失敗するようにgrailsプロジェクトを修正したいと思います。 これをgrailsでどうすればできますか?カバレッジチェックが成功した場合にのみgrailsプロジェクトを構築する
私はgrailsアプリケーションを開発中です。我々は、コードカバレッジレポートを生成するためにcoberturaを使用します。今、コードカバレッジが90%以下であれば、ビルドが失敗するようにgrailsプロジェクトを修正したいと思います。 これをgrailsでどうすればできますか?カバレッジチェックが成功した場合にのみ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
)と必要に応じて値を入力します。
お返事ありがとうございます。今日はそれをテストしてお知らせします。 – Npa
どこからでもこのeventStatusFinalクロージャを呼び出す必要がありますか?私はプロジェクトにインストールされたcoberturaプラグインを持っています。私のためにコードカバレッジレポートを生成しています。 「メッセージ」がこのクロージャにどのように送信されるのか不明ですか? – Npa
いいえ、Grailsビルドシステムは、StatusFinalイベントが発生したときにシステムを呼び出します。コードカバレッジプラグインは、レポートの作成が完了したときにイベントを発生させます。 – ataylor