2014-03-28 7 views
0

iOS 응용 프로그램의 코드 적용 범위를 설정합니다. XCode 5.0.2 및 gcovr 3.1을 사용하여 iOS 7 장치의 코드 범위를 테스트하고 수행합니다. 처음에는 .gcda 파일 생성에 문제가 있었지만 this 블로그를 따라 문제를 해결했습니다.Gcovr이 0 개의 파일에 대한 적용 데이터를 생성합니다.

디버그 모듈에 대해서만 '테스트 커버리지 파일 생성'을 '예'로, '계측기 프로그램 흐름'을 '예'로 설정했습니다. 또한 '기타 C 플래그'의 디버그 모듈에 -fprofile-arcs -ftest-coverage을 설정했습니다. 응용 프로그램이 종료 될 때 __gcov_flush()을 내 응용 프로그램 코드에 추가했습니다.

이제 .gcda 파일이 문제없이 생성됩니다.

그런 다음 홈 디렉토리의 내 작업 영역에 복사합니다. 작업 공간에서 응용 프로그램의 코드 범위를 실행하려고합니다. 명령 줄에서 gcovr 명령을 실행하고 –object-directorygcov 명령을 전달하여 내가 가지고있는 252 개의 gdca 파일에 대해 명령을 실행합니다.

Gathered coverage data for 0 files

이 문제를 해결 도와주세요 : 결국 나는이 출력을 얻을. 비슷한 문제에 대해 많은 시간을 들여 보았지만 해결 방법은 없습니다.

+0

이것을 알아 냈습니까? – ksl

+0

소스 파일을 찾지 못했습니까? 비슷한 문제에 관해 제가 게시 한 답변을보십시오. http://stackoverflow.com/q/25403165/820657 – ksl

답변

2

다른 곳에서는 .gcda 파일을 복사하지 않았지만 gcda 파일이 기본적으로 생성 된 디렉토리로 이동 한 다음 인수없이 gcovr을 실행하면 유효한 결과를 얻습니다. 아마도 그것이 당신이해야 할 일입니다.

+0

동일한 문제가 발생합니다.내가 다음과 같은 결과를 얻는다는 귀하의 제안을 시도하면 : ------------------------------------ GCC 코드 적용 범위 보고서 추적 코드 가장 최근 통화 최종) : print_text_report (covdata에서 파일 "은/usr/local/bin/gcovr"라인 1972) print_text_report OUTPUT에서 파일 "은/usr/local/bin/gcovr", 라인 (822). TypeError : 'NoneType'객체를 str에 str 암시 적으로 변환 할 수 없습니다. – ksl

+1

ksi, 기본 표 형식 대신 XML ('-x')을 출력하는 것이 좋습니다. 그렇지 않으면 그 오류가 발생했을 때 성공합니다. – pr1001

0

gcovr은 .gcda 및 .gcno 파일이있는 폴더에서 실행해야합니다. 루트 경로는 원본 파일 (.c 또는 .cpp)이있는 폴더입니다.

이렇게하면 명령이 다음과 같이 표시됩니다. (.) : 명령 아래에 출력 HTML 파일에 대한

rr-mac:gcdaFolder$ gcovr -r /path_to_C_sourceFiles/ .

rr-mac:gcdaFolder$ gcovr --html -o Filename_rp.html -r /path_to_C_sourceFiles/ .

주 작업 끝에있는 점은 엑스 코드 범위는 0을 결과를

0

필수입니다 파일을 사용하려면 object 디렉토리를 .gcda 및 .gcno 파일로 지정해야하며 루트 경로는 conta이어야합니다 당신은 "MyProject를"귀하의 모든 소스 코드와 같은 폴더에있을 때 소스 파일 (하는 .m의 .H)에 해당 폴더에서 명령은 다음과 같습니다된다

gcovr --root = "MyProject를 /. " --object-directory = "빌드/중간체//..//Objects-normal/x86-64 /"