2012-07-19 8 views
18

Sé cuál es la diferencia entre la cobertura de línea y de sucursal, pero ¿cuál es la diferencia entre la cobertura del código y la cobertura de línea? Es la cobertura de instrucción anterior?Cuál es la diferencia entre la cobertura del código y la línea en sonar

+0

la cobertura parece ser una métrica computada, que tiene en cuenta la línea y la cobertura de la sucursal. No obstante, no se puede encontrar la fórmula: D – oers

+0

, de ahí la pregunta. Creo que es la cobertura de instrucciones, ya que una línea de código Java puede tener múltiples instrucciones, estas dos son diferentes. Tal vez haya una respuesta autorizada aquí;) –

+0

fabrice de sonar vagabundea esta etiqueta, así que creo que obtendré alguna información :) – oers

Respuesta

29

La cobertura es una mezcla sutil ;-) de la línea y la cobertura de la sucursal.

Puede encontrar la fórmula en nuestro metric description page:

coverage = (CT + CF + LC)/(2*B + EL) 

where 

CT - branches that evaluated to "true" at least once 
CF - branches that evaluated to "false" at least once 
LC - lines covered (lines_to_cover - uncovered_lines) 

B - total number of branches (2*B = conditions_to_cover) 
EL - total number of executable lines (lines_to_cover) 
+0

impresionante, no pude encontrar esa página a través de google ... ¡Gracias! –

+0

Creo que debe actualizar una palabra en su URL para obtener la siguiente URL: http://docs.sonarqube.org/display/SONAR/Metric+definitions#Metricdefinitions-Tests ('sonarqube' en lugar de' codehaus') –

+1

De hecho, ¡gracias por la notificación! Enlace actualizado –

2

Para ampliar la respuesta, sólo puede sonar de consulta para estos términos:

  1. conditions_to_cover
  2. uncovered_conditions
  3. lines_to_cover
  4. uncovered_lines

Y entonces usted puede encubierta a los términos anteriormente usando las ecuaciones siguientes:

CT + CF = conditions_to_cover - uncovered_conditions 
2*B = conditions_to_cover 
LC = lines_to_cover - uncovered_lines 
EL = lines_to_cover 

Puede utilizar el Drilldown sonar o del API REST para obtener los valores de la métrica anterior:

http://my.sonar.com/drilldown/measures/My-Project-Name?metric=line_coverage 

http://my.sonar.com/api/resources?resource=55555&metrics=ncloc,conditions_to_cover,uncovered_conditions,lines_to_cover,uncovered_lines,coverage,line_coverage,branch_coverage,it_conditions_to_cover,it_uncovered_conditions,it_lines_to_cover,it_uncovered_lines,it_coverage,it_line_coverage,it_branch_coverage,overall_conditions_to_cover,overall_uncovered_conditions,overall_lines_to_cover,overall_uncovered_lines,overall_coverage,overall_line_coverage,overall_branch_coverage 

Este publicación de blog tiene información adicional: http://sizustech.blogspot.com/2015/10/making-sense-of-sonar-qube-stats-like.html

Cuestiones relacionadas