2014-06-11 29 views
6

Chciałbym napisać testy automatyczne dla mojego kodu CloudKit przy użyciu szkieletu XCTest. Przypadek testowy działa, dostaje ważny obiekt kontenera, dostaje ważnego obiektu bazy danych publicznych, ale potem umiera z wyjątkiem, gdy próbuję zrobić coś Real:Uruchamianie kodu CloudKit w testach?

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

Co próbowałem dotąd:

  • Sprawdziłem numer Info.plist dla mojego celu testowego, a identyfikator pakunku tam odpowiada identyfikatorowi kontenera.
  • Mam swizzled [[NSBundle mainBundle] bundleIdentifier], aby upewnić się, że zwraca prawidłowy identyfikator pakietu.
  • Skopiowałem uprawnienia iCloud z celu mojej głównej aplikacji.

Ale wciąż mam wyjątek. Czy istnieje sposób na uruchomienie kodu CloudKit w testach?

+3

Ten błąd wystąpił, gdy moje rezerwowanie nie było poprawne. Sprawdź, czy na stronie ustawień projektu pod kątem tożsamości nie ma błędu, który jest wymieniony obok zespołu i że w ramach możliwości przełącznik iCloud jest WŁĄCZONY, usługa Cloudkit jest sprawdzana i nie ma nieprawidłowych zaznaczonych kroków. Po tym jak to naprawiłem, moje testy przebiegły poprawnie. –

Odpowiedz

3

Głównym celem jest przeprowadzenie testów jako "testów aplikacji". Testuję niestandardową strukturę, więc nie ma aplikacji do uruchamiania pakietu testowego, żadnych uprawnień, a zatem nie ma CloudKit. Musiałem dodać prosty cel "Test Rig" (pustą aplikację Cocoa), ustawić tam uprawnienia i ustawić to urządzenie testowe jako program ładujący pakiet i host testowy dla zestawu testów. Następnie testy mogą w prosty sposób korzystać z CloudKit. Dziękuję za doprowadzenie mnie na właściwą drogę, @Ward!

Powiązane problemy