2012-04-23 11 views
12

Configure cobertura to ignore certain blocks of codeanotaciones Lombok vs cobertura de código de Cobertura o una herramienta similar

Por lo que he leído de la pregunta anterior, no hay manera de Cobertura para excluir parte del código dado que se está probando en lugar de tener la cobertura en las pruebas.

¿Es eso cierto?/¿Es posible en cualquier herramienta similar?

estoy usuing Lombok anotaciones @Getter, @Setter y así sucesivamente, que son grandes, pero resultan en ser 'rojo' en el informe de cobertura, incluso si estoy probando métodos get y set. - Me gustaría hacer algo con eso ... ¿Hay alguna manera de solucionar esto?

Respuesta

4

¿No es posible ejecutar primero delombok sobre el código bajo prueba, compilarlo y luego instrumentarlo por Cobertura?

Revelación: yo soy uno de los desarrolladores del proyecto Lombok

+2

¿Cómo sería esta ayuda? Delombok no se deshace de los getters/setters, que todavía se muestran "rojos" en la cobertura. –

+0

También en mi caso, algunos códigos de prueba requieren que los métodos generados 'hashcode' y' equals' funcionen correctamente. Con el código delombinado, las pruebas se romperían. –

+3

¿Por qué las pruebas se rompen en iguales y hashCode? ¿Hay algo mal con el código generado? –

0

En mi caso la adición de las dependencias lombock en pom.xml causa Cobertura para dejar la cobertura de la rama en un 70% mientras que la eliminación causó Netbeans para declarar código como roto, ya no se define el acceso

 <dependency> 
      <groupId>org.projectlombok</groupId> 
      <artifactId>lombok</artifactId> 
      <version>1.14.4</version> 
      <scope>provided</scope> 
     </dependency> 

edición La solución fue la de rebajar lombock. Esta versión tenía problemas con las configuraciones actuales de sonar. Pero no estoy a cargo de esas configuraciones, así que no puedo ver por qué.

3

Lombok agrega una anotación @javax.annotation.Generated (1). Pero esta anotación tiene source retención, es decir, su herramienta de cobertura no puede verlo más :-(

Lombok 1.16.14 acaba de arreglar issue-1014 mediante la adición de una opción para generar una anotación de @lombok.Generated lugar, simplemente configurar lombok.addLombokGeneratedAnnotation (2).

cobertura puede ser configurado para omitir los métodos con alguna anotación, por lo que la mayor parte del código generado no contará en contra de su cobertura.

JaCoCo no proporciona un mecanismo de configuración para saltar en ciertas anotaciones. Issue-15 intentos para arregla esto (y mucho más) sin requerir ninguna configuración.

(1) Si no se desactiva con lombok.addGeneratedAnnotation que ahora está obsoleto y debe ser reemplazado con lombok.addJavaxGeneratedAnnotation
(2) ver lombok config
(3) ver this comment

Cuestiones relacionadas