在iOS UITest中获取当前GPS位置
能否在UITest测试用例中获取手机/模拟器的当前GPS位置 一种可能的解决方法是在后台运行测试应用程序,并在测试用例中与该应用程序通信,但如果可能的话,我希望避免这种情况。TL;博士: 示例项目:在iOS UITest中获取当前GPS位置,ios,xcode,xcode-ui-testing,Ios,Xcode,Xcode Ui Testing,能否在UITest测试用例中获取手机/模拟器的当前GPS位置 一种可能的解决方法是在后台运行测试应用程序,并在测试用例中与该应用程序通信,但如果可能的话,我希望避免这种情况。TL;博士: 示例项目: 测试的原则是您控制环境,因此对于测试,您应该使用预定义的位置之一,或者将您的位置之一放入.gpx文件: 例如: <?xml version="1.0"?> <gpx version="1.1"> <wpt lat="50.12108905423" lon="39.92
测试的原则是您控制环境,因此对于测试,您应该使用预定义的位置之一,或者将您的位置之一放入
.gpx
文件:
例如:
<?xml version="1.0"?>
<gpx version="1.1">
<wpt lat="50.12108905423" lon="39.9260224404235">
</wpt>
</gpx>
示例项目假设您可以控制应用程序代码,而不仅仅是测试用例代码:
- 在应用程序本身中实现位置跟踪
- 暴露电流/ 通过跟踪类“public”具有时间戳的最后一个已知位置 (静态?)方法
- 除了要测试的功能之外,还可以在测试用例中访问它
这会降低测试用例的健壮性,但会使您获得所需的行为您可能应该模拟设备位置,以便为您的测试用例找到一个已知的位置testing@Paulw11我们已经使用GPX文件进行了这项工作,但我想知道给定时刻的确切位置。将CoreLocation导入到XCUI测试中,设置一个CLLOCATIONMANAGER并开始跟踪那里的位置?@alexkent不起作用。在我的测试中,它从来没有显示权限提示。不,我想没有,XCUI测试目标没有显示UI…也许你可以绕过它,制作一个与XCUI测试目标具有相同捆绑Id的助手应用程序。助手应用程序只请求位置权限;你启动它一次,接受许可,然后再次运行真正的应用程序测试?不知道这是否可行:这将是一种选择。我认为在我的情况下,尽可能准确地定位是很重要的。这就是为什么我希望在UITest中获得与普通应用程序中的LocationController类似的位置。如果这是不可能的(或没有其他答案),我会接受这个解决办法。哦,对不起,我忘了提那个。我没有访问应用程序代码的权限。
#!/bin/bash
latitude="$(CoreLocationCLI -format \"%latitude\")"
longitude="$(CoreLocationCLI -format \"%longitude\")"
echo "<?xml version=\"1.0\"?>
<gpx version=\"1.1\">
<wpt lat=${longitude} lon=${latitude}>
</wpt>
</gpx>" > generated.gpx