2017-02-24 1 views
1

저는 gcovr과 함께 전체 프로젝트의 커버리지 데이터를 생성하기 위해 작업 해 왔습니다. 다른 사람도 전체와 모든 것을 가진gcovr을 사용하여 메소드 레벨 적용 범위를 얻는 방법은 무엇입니까?

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

하지만,이 데이터 소스 레벨에 있습니다 :

는이 같은 요약 보고서를 생성 할 수 있어요. 그래서 XML 형식의 데이터를 동일한 종류의 XML 파일을 생성하는 시도했다. 마침내 이것과 같은 라인 레벨 커버리지로 더 밀도가 높은 xml 파일을 생성했을 때 :

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

나는 여전히 메소드 레벨을 찾을 수 없었다. gcov를 사용하면 한 번에 하나의 파일에 대한 메서드 수준 적용 범위를 생성 할 수 있지만 수천 개의 파일로 작업 할 때 가능하지는 않습니다. 각 파일에 대한 데이터를 생성하려고하면 어떤 방법이든 문제가 될 수 있습니다.

답변

1

불행히도 gcovr은 현재 기능별로 적용 범위를보고 할 수 없습니다.

XML 보고서에 빈 <methods/> 섹션이 포함되어 있습니다.이 섹션은 Cobertura XML 형식의 DTD 스키마에서 필요하지만 유용한 데이터는 포함되어 있지 않기 때문입니다. 마찬가지로 complexity과 같은 다른 XML 필드에는 더미 데이터 만 포함됩니다.

관련 문제