【问题标题】:In AppCenter Android phone is not cleared between tests在 AppCenter Android 手机在测试之间未清除
【发布时间】:2019-12-20 09:25:07
【问题描述】:

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

System.Net.WebException:POST 在 Xamarin.UITest.Shared.Http.HttpClient.HandleHttpError 失败(System.String 方法,System.Exception 异常,Xamarin.UITest.Shared.Http.ExceptionPolicy exceptionPolicy)[0x0003c] 在: 0 在 Xamarin.UITest.Shared.Http.HttpClient.SendData(System.String 端点,System.String 方法,System.Net.Http.HttpContent 内容,Xamarin.UITest.Shared.Http.ExceptionPolicy 异常策略,System.Nullable1[T] timeOut) [0x0013d] in <a0c3f09cbf9049cbb8d3a680a53dcf46>:0 at Xamarin.UITest.Shared.Http.HttpClient.Post (System.String endpoint, System.String arguments, Xamarin.UITest.Shared.Http.ExceptionPolicy exceptionPolicy, System.Nullable 1[T] 超时)[0x00014] 在:0 在 Xamarin.UITest.Shared.Android.HttpApplicationStarter.Execute(System.String intentJson)[0x00035] 在:0 在 Xamarin.UITest.Shared.Android.AndroidAppLifeCycle.LaunchApp(系统.String appPackageName, Xamarin.UITest.Shared.Android.ApkFile testServerApkFile, System.Int32 testServerPort) [0x000a1] 在 Xamarin.UITest.Shared.Android.AndroidAppLifeCycle.LaunchApp (Xamarin.UITest.Shared.Android.ApkFile appApkFile, Xamarin.UITest.Shared.Android.ApkFile testServerApkFile, System.Int32 testServerPort) [0x00007] 在:0 在 Xamarin.UITest.Android.AndroidApp..ctor (Xamarin.UITest.Configuration.IAndroidAppConfiguration appConfiguration, Xamarin.UITest.Shared.Execution.IExecutor 执行程序) [0x00193] 在 Xamarin.UITest.Android.AndroidApp.. 0 ctor (Xamarin.UITest.Configuration.IAndroidAppConfiguration appConfiguration) [0x00000] 在:0 在 Xamarin.UITest.Configuration.AndroidAppConfigurator.StartApp (Xamarin.UITest.Configuration.AppDataMode appDataMode) [0x00017] 在:0 在 iProvaSearch.UITests.AppInitializer。 StartApp (Xamarin.UITest.Platform 平台) [0x00019] 在 :0 在 iProvaSearch.UITests.Tests.DocumentListTests.BeforeEachTest () [0x00001] 在 中的 iProvaSearch.UITests.Tests.DocumentListTests.BeforeEachTest () [0x00001] 在系统管理Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&) 在 System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Ob :0

中的 ject[] 参数,System.Globalization.CultureInfo 文化)[0x00032]

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

【问题讨论】:

    标签: xamarin.forms xamarin.android xamarin.uitest


    【解决方案1】:

    您需要先了解为什么它适用于 iOS 而不是 Android:

    • 在 iOS 中打开 PDF 非常简单,因为 iOS 内置了一个 PDF 查看器,不需要任何安装。
    • 但对于 Android,您需要安装第三方应用(如 Adob​​e PDF 阅读器)才能查看 PDF 格式的文件。

    所以为了让UITest通过,你可以

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

    【讨论】:

      猜你喜欢
      • 2018-08-06
      • 2021-12-01
      • 1970-01-01
      • 2012-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-15
      相关资源
      最近更新 更多