es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Qué significa los elementos de reglas de JaCoCo y cómo combinarlos?

Estoy tratando de entender las reglas de JaCoCo, pero no hay muchos ejemplos buenos disponibles. Cada hilo que veo circula los mismos ejemplos de la documentación.

Veo 3 métricas diferentes:
– tipos de elementos (BUNDLE, PACKAGE, CLASS, SOURCEFILE o METHOD)
– límites (INSTRUCTION, LINE, BRANCH, COMPLEXITY, METHOD, CLASS)
– valores (TOTALCOUNT, COVEREDCOUNT, MISSEDCOUNT, COVEREDRATIO, MISSEDRATIO)

Entiendo que los “tipos de elementos” representan el alcance de cada regla, lo cual está bien.
– BUNDLE: representa el proyecto en su totalidad.
– PACKAGE: cada paquete de Java.
– CLASS: como su nombre indica, una clase individual.
– SOURCEFILE: ¿En qué se diferencia esto de “CLASS”? ¿Tiene que ver con las clases internas?
– METHOD: El ámbito se aplica a cada método.

Ahora bien, ¿cómo se aplican los límites y valores? Por ejemplo:
xml
<limit>
<counter>LINE</counter>
<value>COVEREDRATIO</value>
<minimum>80%</minimum>
</limit>

¿Puedo reemplazar “LINE” por “INSTRUCTION” por ejemplo? Y si es así, ¿qué significa esto?

También, según la documentación:

Si un límite se refiere a una proporción, debe estar en el rango de 0.0 a 1.0, donde el número de decimales también determinará la precisión en los mensajes de error.

“RATIO” vs “COUNT” es claro, pero ¿puedo usarlos indistintamente? Por ejemplo:
xml
<limit>
<counter>LINE</counter>
<value>TOTALCOUNT</value>
<minimum>3</minimum>
</limit>

y si es así, ¿qué significa la regla anterior?
Según un informe generado, “INSTRUCTION” y “BRANCH” siempre están en “proporción”.
informe de jacoco

Tags:  ,

Answer

  1. Avatar for davy.ai

    Como experto en tecnología de la información especializado en jacoco, jacoco-maven-plugin, puedo explicar lo siguiente:

    Las reglas de JaCoCo constan de tres métricas: tipos de elementos, límites y valores.

    Los tipos de elementos representan el alcance de cada regla e incluyen BUNDLE, PACKAGE, CLASS, SOURCEFILE y METHOD.

    Los límites determinan qué aspecto de cobertura verificar, e incluyen INSTRUCTION, LINE, BRANCH, COMPLEXITY, METHOD y CLASS.

    Los valores determinan el tipo de datos a verificar, e incluyen TOTALCOUNT, COVEREDCOUNT, MISSEDCOUNT, COVEREDRATIO y MISSEDRATIO.

    En cuanto al ejemplo de la pregunta, el límite mostrado especifica que la cobertura de las líneas cubiertas debe ser al menos del 80%. El contador utilizado es LINE, pero se puede reemplazar por INSTRUCTION si se desea. Sin embargo, esto significaría que el límite verificaría la cobertura de las instrucciones y no de las líneas. Por lo tanto, es mejor mantener juntos el contador y el límite para asegurarse de que se esté verificando el aspecto de cobertura deseado.

    Además, las ratios deben estar en el rango de 0.0 a 1.0, y el número de decimales determinará la precisión en los mensajes de error. Los recuentos son valores absolutos y se pueden usar indistintamente con las ratios, como se muestra en el segundo ejemplo. El límite verifica que haya al menos tres líneas totales cubiertas en el código.

    Finalmente, el informe generado muestra que INSTRUCTION y BRANCH siempre se muestran como una ratio, incluso si el límite verifica un recuento.

Comments are closed.