2015-11-23 11 views
7

Ich verwende das JACOCO Werkzeug in Maven-Projekt. Es erstellt Code Coverage XML-Datei "jacoco.xml". Während ich dieses XML analysieren will, muss ich die Bedeutung einiger Attribute in der XML-Datei kennen. xml enthält folgende Elemente:Wie interpretiere ich die Datei jacoco.xml?

<sourcefile name="Ops.java"> 
     <line nr="3" mi="0" ci="3" mb="0" cb="0"/> 
     <line nr="5" mi="0" ci="4" mb="0" cb="0"/> 
     <line nr="11" mi="0" ci="5" mb="2" cb="2"/> 
     <line nr="12" mi="0" ci="2" mb="0" cb="0"/> 
     <line nr="14" mi="8" ci="0" mb="0" cb="0"/> 
     <line nr="15" mi="2" ci="0" mb="0" cb="0"/> 
     <counter type="INSTRUCTION" missed="10" covered="14"/> 
     <counter type="BRANCH" missed="2" covered="2"/> 
     <counter type="LINE" missed="2" covered="4"/> 
     <counter type="COMPLEXITY" missed="2" covered="3"/> 
     <counter type="METHOD" missed="0" covered="3"/> 
     <counter type="CLASS" missed="0" covered="1"/> 
    </sourcefile> 

Variable "nr" scheint Zeilennummer zu bedeuten. Was bedeuten die Variablen "mi", "ci", "mb" und "cb"?

Und hier ist die Codeabdeckung in generierten HTML-Ausgabe.

generated html output

+2

mi = verpasste Anweisungen ci = bedeckte Anweisungen mb = verpasste Filialen cb = bedeckte Zweige ps: https: // GitHub. com/codecov/Beispiel-Java –

+0

Vielen Dank für die Antwort. –

+0

@StevePeak Sie sollten das nur in eine Antwort verwandeln. –

Antwort

12

mi = missed instructions (statements) ci = covered instructions (statements) mb = missed branches cb = covered branches

  • Wenn mbcb oder größer als 0 ist, ist die Linie, eine Niederlassung.
  • Wenn mb und cb sind 0 die Zeile ist eine Aussage.
  • cb/(mb+cb) (Linie 11) ist 2/4 Teiltreffer (daher gelb)
  • Wenn kein Zweig und mi == 0 die Linie getroffen wird (daher grün in Zeile 5)

Thank you!

Bonus: Laden Sie diese Berichte Codecov https://github.com/codecov/example-java

Verwandte Themen