Xamarin.forms 在AppCenter中,Android手机在测试之间未被清除

Xamarin.forms 在AppCenter中,Android手机在测试之间未被清除,xamarin.forms,xamarin.android,xamarin.uitest,Xamarin.forms,Xamarin.android,Xamarin.uitest,我使用Xamarin.UITest为我的Xamarin应用程序编写了一些UITests。其中一个测试单击一个元素,然后打开pdf查看器。在AppCenter中运行此测试时此测试成功,但系统弹出窗口显示“没有可用的应用程序可以执行此操作”。此测试失败后的所有测试均出现此错误: System.Net.WebException:在Xamarin.UITest.Shared.Http.HttpClient.HandleHttpError(System.String方法,System.Exception异

我使用Xamarin.UITest为我的Xamarin应用程序编写了一些UITests。其中一个测试单击一个元素,然后打开pdf查看器。在AppCenter中运行此测试时此测试成功,但系统弹出窗口显示“没有可用的应用程序可以执行此操作”。此测试失败后的所有测试均出现此错误:

System.Net.WebException:在Xamarin.UITest.Shared.Http.HttpClient.HandleHttpError(System.String方法,System.Exception异常,Xamarin.UITest.Shared.Http.ExceptionPolicy ExceptionPolicy ExceptionPolicy)[0x0003c]中失败,0位于Xamarin.UITest.Shared.Http.HttpClient.SendData(System.String端点,System.String方法,System.Net.Http.HttpContent内容,Xamarin.UITest.Shared.Http.ExceptionPolicy ExceptionPolicy,System.Nullable
1[T]超时)[0x0013d]in:0 at Xamarin.UITest.Shared.Http.HttpClient.Post(System.String端点,System.String参数,Xamarin.UITest.Shared.Http.ExceptionPolicy ExceptionPolicy,System.Nullable
1[T]超时)[0x00014]in:0在Xamarin.UITest.Shared.Android.HttpApplicationStarter.Execute(System.String intentJson)[0x00035]in:0在Xamarin.UITest.Shared.Android.Android.Android-applicationcycle.LaunchApp(System.String appPackageName,Xamarin.UITest.Shared.Android.ApkFile testServerApkFile,System.Int32 testServerPort)[0x000a1]in:0位于Xamarin.UITest.Shared.Android.Android.Android应用程序循环.LaunchApp(Xamarin.UITest.Shared.Android.ApkFile appfile appkfile,Xamarin.UITest.Shared.Android.ApkFile testServerApkFile,System.Int32 testServerPort)[0x00007]in:0位于Xamarin.UITest.Android.AndroidApp..ctor(Xamarin.UITest.Configuration.IAndroidAppConfiguration appConfiguration,Xamarin.UITest.Shared.Execution.IExecutor executor)[0x00193]in:0位于Xamarin.UITest.AndroidApp..ctor(Xamarin.UITest.Configuration.IAndroidAppConfiguration appConfiguration)[0x00000]in:0位于Xamarin.UITest.Configuration.AndroidAppConfigurator.StartApp(Xamarin.UITest.Configuration.AppDataMode AppDataMode)[0x00017]in:0位于iProvaSearch.UITests.AppInitializer.StartApp(Xamarin.UITest.Platform)[0x00019]in:0位于iProvaSearch.UITests.Tests.documentlistests.beforeachtests()[0x00001]in:0位于(包装器管理为本机)System.Reflection.MonoMethod:System.Reflection.MonoMethod.Invoke(System.object obj,System.Reflection.BindingFlags invokeAttr,System.Reflection.Binder Binder,System.object[]参数,System.Globalization.CultureInfo culture)处的InternalInvoke(System.Reflection.MonoMethod,object[],System.Exception&)[0x00032]输入:0


在屏幕截图中,我们可以看到系统弹出窗口仍然显示。因此,似乎在测试之间应用程序数据被正确清除,但手机没有。这只发生在Android上,iOS是正常的。有解决方案或解决方法吗?

您需要先了解为什么它在iOS上工作,而不是在Android上工作:

  • 在iOS中打开PDF非常简单,因为iOS内置了PDF查看器,不需要任何安装
  • 但是,对于Android,您需要安装第三方应用程序(如Adobe PDF reader)来查看PDF格式的文件
所以为了通过UITest,你可以

  • 或者更改应用程序,将PDF转换为图片,然后打开它,这需要做一些工作
  • 或者,您可以在Android的UITest时使用来仅运行某些代码,这将实质上覆盖测试以不同方式执行测试功能

您首先需要了解为什么它可以在iOS上工作,而不能在Android上工作:

  • 在iOS中打开PDF非常简单,因为iOS内置了PDF查看器,不需要任何安装
  • 但是,对于Android,您需要安装第三方应用程序(如Adobe PDF reader)来查看PDF格式的文件
所以为了通过UITest,你可以

  • 或者更改应用程序,将PDF转换为图片,然后打开它,这需要做一些工作
  • 或者,您可以在Android的UITest时使用来仅运行某些代码,这将实质上覆盖测试以不同方式执行测试功能