2017-02-24 2 views
1

Ich habe mit gcovr gearbeitet, um Coverage-Daten für mein gesamtes Projekt zu generieren.Wie erhält man die Abdeckung auf Methodenebene mit gcovr?

Ich bin in der Lage zusammenfassende Berichte wie folgt zu generieren:

------------------------------------------------------------------------------ 
        GCC Code Coverage Report 
Directory: ...../src/ 
------------------------------------------------------------------------------ 
File          Lines Exec Cover Missing 
------------------------------------------------------------------------------ 
src/A/A1/xyz.cpp       1609  2  0% 97,99,101.... 
src/A/A2/abcg.cpp       271  4  1% ....... 
src/B/B1/mnop.cpp        74  2  2% 34,42,56-..... 
src/B/B2/wrds.cpp       1533  6  0% 76,83,85-..... 
src/C/C1/abcdefg.cpp      1079  8  0% 143,150,152..... 

mit insgesamt und alles andere auch, aber diese Daten an der Quelle Ebene. Also habe ich versucht, XML-Dateien zu erzeugen, die die gleiche Art von Daten im XML-Format hatten. Als ich schließlich dichtere xml-Datei mit Line-Level-Abdeckung wie diese erzeugt:

<class branch-rate="0.285714285714" complexity="0.0" filename="src/absc/mno/xyz/ahgs.cpp" line-rate="0.231481481481" name="os_clib_hxx"> 
<methods/> 
<lines> 
<line branch="false" hits="0" number="200"/> 
<line branch="false" hits="0" number="202"/> 
<line branch="false" hits="3" number="208"/> 
<line branch="false" hits="3" number="210"/> 
<line branch="false" hits="63" number="213"/> 
<line branch="true" condition-coverage="50% (1/2)" hits="63" number="215"> 
<conditions> 
<condition coverage="50%" number="0" type="jump"/> 
</conditions> 
</line> 
<line branch="false" hits="0" number="218"/> 
......... 
.......... 

Ich konnte immer noch nichts Methodenlevel finden. Ich weiß, dass es mit gcov möglich ist, die Methodenebenendeckung für jeweils eine Datei zu generieren, aber das ist in meinem Fall nicht möglich, da ich mit Tausenden von Dateien arbeite, für die ich versuche, für jede Datei Daten zu generieren Jede Methode wäre problematisch.

Antwort

1

Leider kann gcovr derzeit die Abdeckung nicht pro Funktion protokollieren.

Der XML-Bericht enthält einen leeren Abschnitt <methods/>, da dieser Abschnitt vom DTD-Schema für das Cobertura-XML-Format benötigt wird, aber keine nützlichen Daten enthält. Ebenso enthalten andere XML-Felder wie complexity nur Dummy-Daten.

Verwandte Themen