iOS UITesting 的模拟器位置
iOS emulator location for UITesting
我正在尝试 运行 我在持续集成服务器上的 UITest(我正在使用 Bitrise)。因此,在我的一个 UITest 中,我有以下内容:
let myLocationPin = app.otherElements["My Location"]
self.expectation(for: exists, evaluatedWith: myLocationPin, handler: nil)
self.waitForExpectations(timeout: 20, handler: nil)
expect(myLocationPin.exists).to(beTrue())
expect(myLocationPin.isHittable).to(beTrue())
myLocationPin.tap()
它在我的本地机器上运行良好,但一旦在 CI 服务器上 运行 进行测试,它就会失败。我发现失败的原因是 运行 测试的模拟器没有任何选择的位置。我尝试添加一个 GPX 文件,但也没有用。有什么建议么 ?
您是否在 运行 之前从下拉列表中 select 在本地计算机上定位?
如果是这种情况,那么您将无法使用图形 UI 在 bitrise 上执行此操作,但是可以根据方案 select 编辑位置。
您可以按照此 post 在您的计划中设置位置:
更新:
如果上述方法没有解决问题,另一种解决方案是:
要在模拟器本身中更改位置,您需要在 UI测试之前添加一个 script
步骤,包括以下脚本:
# 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 }' | awk -F '[\[]' '{print }' | 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
不要忘记将 iPhone 6 (10.3)
更改为您需要的模拟器,将 London
更改为您自己的位置,使用 -c
标志您也可以设置坐标。
有关 set-simulator-location
的更多信息,请访问:set-simulator-location
如果您想在模拟器中自定义位置,则 Select 模拟器并执行这两个步骤。
并更改位置
我正在尝试 运行 我在持续集成服务器上的 UITest(我正在使用 Bitrise)。因此,在我的一个 UITest 中,我有以下内容:
let myLocationPin = app.otherElements["My Location"]
self.expectation(for: exists, evaluatedWith: myLocationPin, handler: nil)
self.waitForExpectations(timeout: 20, handler: nil)
expect(myLocationPin.exists).to(beTrue())
expect(myLocationPin.isHittable).to(beTrue())
myLocationPin.tap()
它在我的本地机器上运行良好,但一旦在 CI 服务器上 运行 进行测试,它就会失败。我发现失败的原因是 运行 测试的模拟器没有任何选择的位置。我尝试添加一个 GPX 文件,但也没有用。有什么建议么 ?
您是否在 运行 之前从下拉列表中 select 在本地计算机上定位?
如果是这种情况,那么您将无法使用图形 UI 在 bitrise 上执行此操作,但是可以根据方案 select 编辑位置。
您可以按照此 post 在您的计划中设置位置:
更新:
如果上述方法没有解决问题,另一种解决方案是:
要在模拟器本身中更改位置,您需要在 UI测试之前添加一个 script
步骤,包括以下脚本:
# 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 }' | awk -F '[\[]' '{print }' | 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
不要忘记将 iPhone 6 (10.3)
更改为您需要的模拟器,将 London
更改为您自己的位置,使用 -c
标志您也可以设置坐标。
有关 set-simulator-location
的更多信息,请访问:set-simulator-location
如果您想在模拟器中自定义位置,则 Select 模拟器并执行这两个步骤。
并更改位置