2009-12-22 4 views
6

저는 최근에 iPhone 용으로 작성한 앱을 단위 테스트하기 시작했습니다. 나는 약간의 차선책 인 것처럼 보이지만 내 자신의 테스트를 작성하는 기초를 가지고있다. 나는 gcov를 사용하여 코드 커버리지 분석을 설정하는 데 정말로 어려움을 겪고있다.iPhone SDK에서 코드 범위 분석을 위해 gcov를 설정하는 방법은 무엇입니까?

다음 안내에 따라 : http://www.cubiclemuses.com/cm/articles/2009/05/14/coverstory-on-the-iphone/, 다른 장소에서 매우 유사하게 반복됩니다. Xcode에서 뭔가 잘못 입력 한 경우를 대비하여 Mac 용 도구 상자에서 Google's AppleScript을 사용해 보았습니다.

필자는 Apple의 iPhoneUnitTests sample을 기본 프로젝트로 사용했으며 CalcTests 타겟에 대한 코드 커버리지 테스트를 활성화하기 위해 Google의 AppleScript를 실행하여 제대로 작동하지 않는 자동화 된 예제를 얻지 못했습니다. 아무리 내가 무엇을 사용 시나리오, 내 자신의 코드, 애플, 수동으로 적절한 변수를 설정하거나 구글의 애플 스크립트셔서는 테스트 실행이 완료되면 내가 할 모든 디버그 콘솔에서 이러한 오류이다, 나를 위해 그것을하지 않는다 :

profiling:/Users:Cannot create directory 
profiling:/Users/jpo/Downloads/iPhoneUnitTests/build/iPhoneUnitTests.build/Debug-iphoneos/CalcTesting.build/Objects-normal/armv6/CalcViewController.gcda:Skip 
profiling:/Users:Cannot create directory 
profiling:/Users/jpo/Downloads/iPhoneUnitTests/build/iPhoneUnitTests.build/Debug-iphoneos/CalcTesting.build/Objects-normal/armv6/Calculator.gcda:Skip 
profiling:/Users:Cannot create directory 
profiling:/Users/jpo/Downloads/iPhoneUnitTests/build/iPhoneUnitTests.build/Debug-iphoneos/CalcTesting.build/Objects-normal/armv6/CalcAppDelegate.gcda:Skip 
profiling:/Users:Cannot create directory 
profiling:/Users/jpo/Downloads/iPhoneUnitTests/build/iPhoneUnitTests.build/Debug-iphoneos/CalcTesting.build/Objects-normal/armv6/main.gcda:Skip 

gcda 파일이 생성되지 않아 분석 할 내용이 없습니다. 이에 대한 도움을 주시면 대단히 감사하겠습니다.

답변

6

이 가이드는 iPhone 시뮬레이터에서 실행중인 코드를 참조합니다. 응용 프로그램 수준 테스트를 실행 중이므로 크로스 프로파일 링이므로 this information을 따라야합니다.

그런 다음 환경 변수 GCOV_PREFIX를 내 응용 프로그램의 Documents 디렉토리에 덤프하도록 설정 한 다음 Xcode의 Organizer를 사용하여 장치에서 내 응용 프로그램 패키지를 다운로드하여 .gcda 파일을 Documents 디렉토리에서 가져옵니다. 이것은 다소 번거롭고 자동 커버리지 테스트에 적합하지 않지만 샌드 박스에서 실행하고 장치 (즉 MediaPlayer.framework)에서 테스트 할 수있는 클래스를 사용한다는 제약 조건에서 볼 수있는 유일한 솔루션입니다.

관련 문제