在测试中运行 CloudKit 代码?
Posted
技术标签:
【中文标题】在测试中运行 CloudKit 代码?【英文标题】:Running CloudKit code in tests? 【发布时间】:2014-06-11 08:14:41 【问题描述】:我想使用 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 代码在测试中运行?
【问题讨论】:
我的配置不正确时出现此错误。检查身份下的项目设置页面上,团队旁边没有列出任何错误,并且在功能下,iCloud 切换为 ON,检查了 Cloudkit 服务并且没有无效的标记步骤。修复后,我的测试运行正常。 【参考方案1】:重点是将测试作为“应用程序测试”运行。我测试了一个自定义框架,所以没有运行测试套件的应用程序,没有权利,因此没有 CloudKit。我必须添加一个简单的“Test Rig”目标(一个空的 Cocoa 应用程序),在那里设置权利,并将这个测试设备设置为 Bundle Loader 和测试套件的测试主机。然后测试可以很好地使用 CloudKit。谢谢你让我走上正轨,@Ward!
【讨论】:
以上是关于在测试中运行 CloudKit 代码?的主要内容,如果未能解决你的问题,请参考以下文章
运行 CloudKitAtlas 失败(Cloudkit 测试)