2012-08-22 10 views

Respuesta

4

No creo que el complemento de cobertura de código admita esto directamente, pero es bastante fácil hacerlo conectándose a la potente infraestructura de eventos de compilación de Grails. Al colocar esto en su scripts/_Events.groovy, la construcción fallará si la cobertura está por debajo de un cierto umbral:

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

Para ello, debe activar la generación de informes XML con esto en grails-app/conf/BuildConfig.groovy:

coverage { 
    xml = true 
} 

Ajuste el atributo (line-rate, branch-rate) y valor según sea necesario.

+0

Gracias por la respuesta. Lo probaré hoy y te lo haré saber. – Npa

+0

¿Necesitamos llamar a este evento eventStatusFinal cierre desde cualquier lugar. Tengo el plugin de cobertura instalado en mi proyecto. Está generando informes de cobertura de código para mí. ¿No está seguro de cómo se enviará el 'mensaje' a este cierre? – Npa

+0

No, el sistema de compilación Grails lo llama cuando ocurre el evento StatusFinal. El complemento de cobertura de código activa el evento cuando termina de escribir su informe. – ataylor

Cuestiones relacionadas