【发布时间】:2016-06-07 07:26:19
【问题描述】:
我的 iOS 应用需要一些权限(GPS、推送通知)。 当应用程序第一次启动时,iOS 会询问用户是否可以将这些权限授予应用程序。 我已经编写了一些 UITests,并希望在本地连接的 iPhone 上自动运行它们。
问题是我无法覆盖权限问题并且我的测试失败。
我发现 IDE (Xamarin Studio) 部署的应用程序会请求权限,但通过 UITests 部署的应用程序不会。
所以我尝试了.AppBundle(path_to_app),但它说这仅对部署到模拟器有效。
SetUp : System.Exception : 此应用程序包无法在其上运行 一个模拟器。要解决此问题,请确保您的目标设备 是一个模拟器。 DTPlatformName 是“iphoneos”,而不是“iphonesimulator” 应用程序 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/
所以我可能注定要完成这项任务,但也许有人知道解决方法?
【问题讨论】:
-
您找到解决方案了吗?
标签: ios iphone xamarin.ios ui-testing xamarin.uitest