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