2012-10-04 3 views
3

Xcode 4.5에 프로젝트 인 Mac OS X명령 줄 도구가 있습니다. 수동으로 단위 테스트 대상을 코코아 단위 테스트 번들 템플릿에서 수동으로 추가했습니다 (명령 줄 도구 템플릿에는 유닛 테스트 포함 스위치가 없음). 문제 : 테스트를 실행할 때 중단 점에서 중단되도록 디버거를 가져올 수 없습니다 (제품> 테스트). 내가 요구하기 전에 구글에서 검색을 한 것처럼Xcode 4, Mac OS 명령 행 도구에 대한 단위 테스트에서 중단 점이 작동하지 않습니다.

,이 체크 나는 이미 시도 몇 가지/위치 :

  • 테스트를 실행합니까 단위 (이 제대로 예를 들어, STFail에 실패()).
  • 마스터는 중단 점 상단 막대의 스위치가 켜져 있습니다 (켜고 끄면 도움이되지 않습니다).
  • 빌드 구성으로 설정되고 디버그는 디버그 대상이됩니다 (디버거는 LLDB이고 GDB로 변경하면 도움이되지 않습니다).
  • 일반적으로 디버깅이 작동합니다. 메인 콘솔 앱의 타겟 브레이크 포인트는 정상적으로 작동하므로 문제가있는 유닛 테스트 일뿐입니다. 또한 단위 테스트가 포함 된 테스트 iOS 앱을 만들었습니다. 앱 및 유닛 테스트가 모두 정상적으로 중단되었습니다.
  • 빌드 설정을 잘 보면 (내가 확인한다고 다른이 있으면 알려주세요) :
    • 가 디버그 기호를 생성 = 예
    • 최적화 레벨 = 없음 [-O0] (디버그 용)
  • 기호식 중단 점 (on - [NSException raise] 또는 objc_exception_throw)을 설정해도 도움이되지 않습니다.
  • 프로젝트를 다시로드하거나 Xcode를 다시 시작해도 도움이되지 않습니다.

단위 테스트에서 중단 점을 수행하려면 어떻게해야합니까?

답변

1

단위 테스트 대상에 대한 "빌드 후 테스트"빌드 설정 ("단위 테스트"아래)을 확인하십시오.

이 설정을 "예"로 설정하면 타겟이 빌드 된 후 Xcode를 통해 (다시) 실행되기 전에 Xcode의 "외부"쉘 스크립트를 통해 테스트가 실행됩니다. 따라서 스크립트가 실행될 때 테스트가 실패하면 두 번째 실행 ("inside"Xcode)이 발생하지 않으므로 중단 점에 도달하지 않습니다. 디버깅하는 동안 테스트가 실패하는 테스트 인 경우

- 또는

, 그것은 실패가 당신의 -setup 방법에 발생 가능성이 있습니다. 이것은 setUp에서 OCMock을 사용하고 설정 중에 호출되는 메서드를 스텁하는 것을 잊어 버린 경우 발생할 수 있습니다.

+0

두 번째 제안이 문제였습니다. 고마워. – jaker

0

ios 앱에 대한 단위 테스트에서 비슷한 구멍이 있습니다. 다른 위치에서 코드의 새 사본을 사용하면이 문제가 해결되었습니다.

업데이트 : 문제가있는 상태는 프로젝트/작업 공간의 xcuserdata 디렉토리에있는 것 같습니다. 이 문제를 해결하면 다시 문제가 생겼을 때 문제가 해결되었습니다. 하지만 이전 상태 (예 :, 중단 점 설정, 열린 창 등)

관련 문제