2017-02-24 9 views
1

Je travaille avec gcovr pour générer des données de couverture pour l'ensemble de mon projet.Comment obtenir une couverture au niveau de la méthode avec gcovr?

Je suis en mesure de générer des rapports de synthèse comme celui-ci:

------------------------------------------------------------------------------ 
        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..... 

avec un total et tout le reste aussi, mais ces données sont au niveau de la source. J'ai donc essayé de générer des fichiers xml qui avaient le même type de données au format xml. Quand j'ai finalement généré un fichier xml plus dense avec une couverture de niveau de ligne comme celui-ci:

<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"/> 
......... 
.......... 

Je ne trouvais toujours rien au niveau de la méthode. Je sais qu'il est possible avec gcov de générer une couverture de niveau de méthode pour un fichier à la fois, mais ce n'est pas possible dans mon cas car je travaille avec des milliers de fichiers, pour lesquels j'essaye de générer des données pour chacun toute méthode serait problématique.

Répondre

1

Malheureusement, gcovr n'est actuellement pas en mesure de déclarer la couverture par fonction.

Le rapport XML contient une section <methods/> vide car cette section est requise par le schéma DTD pour le format XML Cobertura, mais elle ne contient pas de données utiles. De même, d'autres champs XML tels que complexity contiennent uniquement des données factices.