Fastlane / CircleCI上的UI测试失败,因为在新的模拟器上没有设置位置

时间:2018-04-21 00:30:51

标签: xcode xcode-ui-testing circleci fastlane

目前我们的测试失败了,因为当授予位置权限时,我们永远不会进入下一个屏幕,因为位置更新永远不会发生。

这是因为使用Fastlane设置的新模拟器实例未设置位置。应用程序目标方案指定了默认位置,UI测试目标也是如此;都不尊重。当测试从Xcode运行时,位置DO得到尊重,而不是当模拟器从命令行激活时,因为模拟器应用程序从未实际打开,只是存在,由终端拥有但不可见。测试套件上的位置也已设置。

如何在脚本中设置模拟器的位置,当模拟器以不可见的方式运行时,该脚本将被尊重?

我发现了这个:https://github.com/lyft/set-simulator-location

它需要这个脚本:

# download set-simulator-location
brew install lyft/formulae/set-simulator-location

# run simulator
export IOS_SIMULATOR_UDID=`instruments -s devices | grep "iPhone 6 (10.3) \[" | awk -F '[ ]' '{print $4}' | awk -F '[\[]' '{print $2}' | sed 's/.$//'`
echo $IOS_SIMULATOR_UDID
open -a "simulator" --args -CurrentDeviceUDID $IOS_SIMULATOR_UDID

# wait simulator to start fully
sleep 15

# set location
set-simulator-location -q London

但它似乎很笨重,需要对特定模拟器进行硬编码,然后打开它,等待15秒,然后在其上设置位置。我觉得必须有更好的方法。

0 个答案:

没有答案