7

いくつかの権限 (GPS、プッシュ通知) が必要な iOS アプリがあります。アプリが初めて起動すると、iOS はユーザーに、それらのアクセス許可をアプリケーションに付与してもよいかどうかを尋ねます。いくつかの UITests を作成しましたが、ローカルに接続された iPhone での実行を自動化したいと考えています。

問題は、アクセス許可の質問をオーバーライドできず、テストが失敗することです。IDE (Xamarin Studio) によって展開されたアプリケーションはアクセス許可を要求することがわかりましたが、UITests を介して展開されたアプリケーションは要求しません。だから私は試してみまし.AppBundle(path_to_app)たが、これはシミュレーターへの展開にのみ有効であると言われています。

SetUp : System.Exception : このアプリ バンドルは、シミュレーターでの実行には有効ではありません。この問題を解決するには、ターゲット デバイスがシミュレータであることを確認してください。DTPlatformName は、アプリの Info.plist の「iphonesimulator」ではなく「iphoneos」です。

iPhoneアプリをSimulatorにデプロイしようとしているようです。ただし、Xamarin Studio の Target は実際のデバイスに設定されています。追加してみました.DeviceIdentifier。使用する.InstalledAppと起動していました(まだ許可を求めています)。しかし、使用するDeviceIdentifierAppBundle、上記と同じエラーが発生しました。

私のテストは Test Cloud で正常に動作します。それらはシミュレーターで正常に動作します。手動でデバイスにデプロイし、アプリを起動して権限を承認し、UI テストを実行すると、正常に動作します。

私が達成できないのは、UITests が実際のデバイスでアクセス許可の質問を上書きするようにすることです。誰かがこれを機能させましたか?

AppBundle最後に、「シミュレーターで強制的に実行する」という方法 のドキュメントにあることがわかりましたhttps://developer.xamarin.com/api/member/Xamarin.UITest.Configuration.iOSAppConfigurator.AppBundle/p/System.String/

だから私はその仕事に運命づけられているかもしれませんが、おそらく誰かが回避策を知っていますか?

4

3 に答える 3

0

実際のデバイスの場合、それらは必要ありません。

    {
app = ConfigureApp
                    .iOSAppBundle 
                    .StartApp();
}

実際のデバイスをシステムに接続している場合は、このコードで十分です。実行する前にそれを選択してください。

于 2016-07-05T17:15:35.400 に答える