2012-08-22 1 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