2014-06-11 90 views
6

我想使用XCTest框架爲我的CloudKit代碼編寫自動化測試。測試的具體運行情況,得到了有效的容器對象,獲取一個有效的公共數據庫對象,但隨後的異常死亡,當我嘗試做任何事情真正:在測試中運行CloudKit代碼?

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

我迄今爲止嘗試:

  • 我已經爲我的測試目標檢查了Info.plist,其中的包ID對應於容器ID。
  • 我用swizzled [[NSBundle mainBundle] bundleIdentifier]來確保它返回正確的包ID。
  • 我已經從我的主應用程序的目標中複製了iCloud授權。

但我仍然得到例外。有沒有辦法讓CloudKit代碼在測試中運行?

+3

我的配置不正確時出現此錯誤。檢查在項目設置頁面下的身份識別沒有錯誤列在團隊旁邊,並且在功能下iCloud切換爲開啓,Cloudkit服務被檢查並且沒有無效的標記步驟。我解決之後,我的測試運行正常。 –

回答

3

重點是將測試作爲「應用測試」來運行。我測試了一個自定義框架,因此沒有應用程序運行測試套件,沒有權利,因此也沒有CloudKit。我不得不添加一個簡單的「Test Rig」目標(一個空的Cocoa應用程序),在那裏設置權利,並將此測試設備設置爲測試套件的Bundle Loader和Test Host。然後測試可以很好地使用CloudKit。感謝您讓我走上正軌,@Ward!

相關問題