6

我想使用 XCTest 框架为我的 CloudKit 代码编写自动化测试。测试用例运行,得到一个有效的容器对象,得到一个有效的公共数据库对象,但是当我尝试做任何真实的事情时,它会因异常而死:

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

到目前为止我已经尝试过:

  • 我已经检查了Info.plist我的测试目标,并且那里的包 ID 对应于容器 ID。
  • 我已经调整[[NSBundle mainBundle] bundleIdentifier]以确保它返回正确的捆绑 ID。
  • 我已经从我的主应用程序的目标中复制了 iCloud 权利。

但我仍然得到例外。有没有办法让 CloudKit 代码在测试中运行?

4

1 回答 1

3

要点是将测试作为“应用程序测试”运行。我测试了一个自定义框架,因此没有运行测试套件的应用程序,没有权利,因此没有 CloudKit。我必须添加一个简单的“Test Rig”目标(一个空的 Cocoa 应用程序),在那里设置权利,并将这个测试设备设置为 Bundle Loader 和测试套件的测试主机。然后测试可以很好地使用 CloudKit。谢谢你让我走上正轨,@Ward!

于 2014-06-11T18:02:46.740 回答