Xamarin.UITests – 在真实设备上测试 – iOS – 应用程序权限d出窗口问题

Xamarin.UITests – 在真实设备上测试 – iOS – 应用程序权限d出窗口问题,第1张

概述我的iOS应用需要一些特权(GPS,推送通知). 当应用程序第一次启动时,iOS会询问用户是否可以将这些权限授予应用程序. 我写过一些UITests,想要在本地连接的iPhone上自动运行它们. 问题是我无法覆盖权限问题,我的测试失败. 我发现IDE(Xamarin Studio)部署的应用程序将要求权限,但是通过UITests部署的应用程序不会. 所以我尝试使用.AppBundle(path_t 我的iOS应用需要一些特权(GPS,推送通知).
当应用程序第一次启动时,iOS会询问用户是否可以将这些权限授予应用程序.
我写过一些UITests,想要在本地连接的iPhone上自动运行它们.

问题是我无法覆盖权限问题,我的测试失败.
我发现IDE(Xamarin Studio)部署的应用程序将要求权限,但是通过UITests部署的应用程序不会.
所以我尝试使用.AppBundle(path_to_app),但它说这只适用于部署到Simulator.

SetUp : System.Exception : This app bundle is not valID for running on
a simulator. To fix this issue please ensure that your target device
is a simulator. DTPlatformname is ‘iphoneos’,not ‘iphonesimulator’ in
the apps Info.pList.

就像它试图将iPhone应用程序部署到模拟器一样.但是Xamarin Studio中的Target设置为真实设备.
我试着添加.deviceidentifIEr.当与.InstalledApp一起使用时,它正在启动(仍然要求权限).
但是当我使用deviceidentifIEr和AppBundle时,出现了与上面相同的错误.

我的测试在Test Cloud上运行良好.它们在模拟器上工作正常.
当我手动部署到设备,启动应用程序并批准权限然后运行UI测试时,它们工作正常.

我无法实现的是让UITests覆盖真实设备上的权限问题.
有人做过这个吗?

最后一件事是我发现在AppBundle方法的文档中
“将强制在模拟器上运行”
https://developer.xamarin.com/api/member/Xamarin.UITest.Configuration.iOSAppConfigurator.AppBundle/p/System.String/

所以我可能注定要完成任务,但也许有人知道解决方法?

解决方法 您可以使用InvokeUIA关闭使用UITest的系统对话框.通过点击iOS系统警报的“确定”按钮,可以进行以下测试:
[Test]public voID AppLaunches (){    app.Screenshot ("First screen.");    app.InvokeUia ("uia.query('[:vIEw {:marked \"OK\"}]')");     app.InvokeUia ("uia.tapMark(\"OK\")"); }

一个工作样本应用程序& UITest也在这里:
https://github.com/King-of-Spades/InvokeUia-for-System-Dialogs

关于Test Cloud中系统对话框的警告

您在Test Cloud中没有看到此问题的原因是Test Cloud自动关闭系统警报;所以通常你不必担心它.但是,如果您的警报启动太快;所以它在自动化完全启动你的应用程序之前出现,然后它将无法检测到&解除警报并导致测试失败.

因此,您需要确保在Test Cloud中运行应用程序时,权限请求被延迟,或者如果特定测试未明确需要,您甚至可以停用它们.有关更多信息,请参阅此Calabash指南:https://github.com/calabash/calabash-ios/wiki/Managing-Privacy-Alerts%3A–Location-Services%2C-APNS%2C-Contacts

(即使它是Calabash,你可以在UITest中使用相同的策略;虽然使用C#语法.)

Xcode 8 / iOS 10的更新

Xcode 8 / iOS 10删除了UIautomation,因此只有在使用Xcode 7和iOS 7-9时才能继续使用InvokeUIA解决方法.参考文献:

> UITest:https://developer.xamarin.com/guides/testcloud/UITest/xcode7/
>葫芦:https://developer.xamarin.com/guides/testcloud/calabash/xcode7/#Automation_API

总结

以上是内存溢出为你收集整理的Xamarin.UITests – 在真实设备上测试 – iOS – 应用程序权限d出窗口问题全部内容,希望文章能够帮你解决Xamarin.UITests – 在真实设备上测试 – iOS – 应用程序权限d出窗口问题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1099438.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存