执行UI测试期间在模拟器中更新位置

Pet*_*vin 5 simulator cllocationmanager ios swift xcode-ui-testing

我想在UI测试的中间更新模拟器的位置,以便可以在位置更改时检查行为。UI测试是否可以通过某种方式“调出”运行AppleScript,该AppleScript可以通过模拟器的“调试/位置”菜单项或其他方法来更改模拟器的位置?

如果无法做到这一点,我正在考虑将自己的CLLocationManager版本注入应用程序,然后从UI测试(例如,通过本地Web服务器)将位置发送到该版本,假设我可以通过某种方式获取UI测试的位置信息“不在”位置(例如,通过写入Mac上的文件)。

Joe*_*tti 2

您可以使用自定义GPX 文件模拟位置变化。使用您所需的路径或路线创建一个,然后从“产品”->“方案”->“编辑方案...”中选择它

在此输入图像描述

  • 此方法仅适用于单元测试。UI 测试需要在 iOS 16.4、macOS 13.3 和 Xcode 14.3 中发布的新 API https://developer.apple.com/documentation/xctest/xcuidevice/4111083-location (2认同)