2014-06-11 3 views
6

XCTest 프레임 워크를 사용하여 CloudKit 코드에 대한 자동화 된 테스트를 작성하고 싶습니다. 테스트 케이스는 실행 유효한 컨테이너 개체를 가져옵니다 유효한 공인 데이터베이스 개체를 가져옵니다,하지만 난 진짜 아무것도 할 때 예외가 사망 :테스트에서 CloudKit 코드를 실행 하시겠습니까?

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', 
    reason: 'Failed to establish valid container/bundleID information' 

지금까지 시도하는 것 :

  • 테스트 대상으로 Info.plist을 확인했는데 번들 ID가 컨테이너 ID에 해당합니다.
  • 올바른 번들 ID를 반환하는지 확인하기 위해 [[NSBundle mainBundle] bundleIdentifier]을 swizzled했습니다.
  • 메인 애플리케이션의 대상에서 iCloud 권한을 복사했습니다.

하지만 예외는 여전히 있습니다. CloudKit 코드를 테스트에서 실행하는 방법이 있습니까?

+3

내 프로비저닝이 올바르지 않은 경우이 오류가 발생합니다. 프로젝트 설정 페이지에서 ID 옆에 팀에 오류가 표시되지 않고 iCloud 토글이 켜져 있고 Cloudkit 서비스가 무효로 표시된 단계없이 체크되어 있는지 확인하십시오. 그걸 고치면 테스트가 잘됩니다. –

답변

3

요점은 테스트를 "응용 프로그램 테스트"로 실행하는 것입니다. 필자는 사용자 정의 프레임 워크를 테스트하므로 테스트 스위트를 실행할 응용 프로그램이 없으므로 권한이 없으므로 CloudKit이 없습니다. 간단한 "Test Rig"타겟 (빈 Cocoa 앱)을 추가하고 거기에 인 타이틀먼트를 설정하고이 테스트 장비를 Bundle Loader 및 테스트 스위트 용 테스트 호스트로 설정해야했습니다. 그러면 테스트에서 CloudKit을 사용할 수 있습니다. 올바른 길로 나를 보내 주셔서 감사합니다. @Ward!