2012-08-22 18 views

答えて

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!") 
    } 
    } 
} 

これはgrails-app/conf/BuildConfig.groovyにこれでXMLのレポート生成をオンにする必要があります:

coverage { 
    xml = true 
} 

調整します属性(line-rate,branch-rate)と必要に応じて値を入力します。

+0

お返事ありがとうございます。今日はそれをテストしてお知らせします。 – Npa

+0

どこからでもこのeventStatusFinalクロージャを呼び出す必要がありますか?私はプロジェクトにインストールされたcoberturaプラグインを持っています。私のためにコードカバレッジレポートを生成しています。 「メッセージ」がこのクロージャにどのように送信されるのか不明ですか? – Npa

+0

いいえ、Grailsビルドシステムは、StatusFinalイベントが発生したときにシステムを呼び出します。コードカバレッジプラグインは、レポートの作成が完了したときにイベントを発生させます。 – ataylor

関連する問題