【发布时间】:2015-12-07 22:53:21
【问题描述】:
我正在尝试通过对当前屏幕元素(标签、图像、按钮)进行快照并将其可访问性信息保存到 json 文件来扩展 Xcode 7 中的新 UI 测试功能。
这个想法是,稍后运行 UI 测试时,可以拍摄当前屏幕快照并与现有屏幕快照进行比较,如果发现额外或缺少的元素,测试将失败。
不幸的是,在 UI 测试期间应用程序资源似乎不可用,即使目标正确,因此无法加载 json 文件进行比较。以下标准代码无法加载资源:
guard let resourcePath = NSBundle.mainBundle ().pathForResource ("StartScreenShapshot", ofType:"json") else {
XCTFail ("can't load resource StartScreenShapshot")
return
}
我可以理解为什么 Apple 采用了这种沙盒方法,因为 UI 测试应该基于屏幕上发生的事情,并且不需要访问应用程序的工作,但无法访问资源包是一种痛。
那么,在 Xcode 7 UI 测试期间,有没有办法从应用程序加载本地资源,或者以其他方式在本地加载?
在本地(自动)保存文件也将是一个巨大的优势,将节省手动创建它们。
【问题讨论】:
-
似乎您遇到了测试和捆绑包的老问题,如果是这样,请查看这个问题stackoverflow.com/a/19636417/1403732
-
谢谢,这就是问题所在。已经发布了答案,干杯。
标签: ios xcode testing xcode7 xcode-ui-testing