xamarin.ios - UI 测试,无法运行 iOS ui 测试 - 无法确定 X 的模拟器版本

标签 xamarin.ios xamarin.uitest

当我想为 iOS 运行 UI 测试时,我收到以下消息:

SetUp : System.Exception : Unable to determine simulator version for X

堆栈跟踪:
  at Xamarin.UITest.iOS.Instruments.GetMajorVersionForSimulator (System.String deviceIdentifier) [0x0008c] in <2a16c16730a54859bda72c6bc1c728f7>:0 
  at Xamarin.UITest.iOS.iOSAppLauncher.LaunchAppLocal (Xamarin.UITest.Configuration.IiOSAppConfiguration appConfiguration, Xamarin.UITest.Shared.Http.HttpClient httpClient, System.Boolean clearAppData) [0x0011a] in <2a16c16730a54859bda72c6bc1c728f7>:0 
  at Xamarin.UITest.iOS.iOSAppLauncher.LaunchApp (Xamarin.UITest.Configuration.IiOSAppConfiguration appConfiguration, Xamarin.UITest.Shared.Http.HttpClient httpClient, Xamarin.UITest.TestCloud.TestCloudiOSAppConfiguration testCloudAppConfiguration, Xamarin.UITest.Shared.Http.HttpClient testCloudWsClient, Xamarin.UITest.Shared.Http.HttpClient xtcServicesClient, System.Boolean testCloudUseDeviceAgent) [0x00068] in <2a16c16730a54859bda72c6bc1c728f7>:0 
  at Xamarin.UITest.iOS.iOSApp..ctor (Xamarin.UITest.Configuration.IiOSAppConfiguration appConfiguration, Xamarin.UITest.Shared.Execution.IExecutor executor) [0x002af] in <2a16c16730a54859bda72c6bc1c728f7>:0 
  at Xamarin.UITest.iOS.iOSApp..ctor (Xamarin.UITest.Configuration.IiOSAppConfiguration appConfiguration) [0x00000] in <2a16c16730a54859bda72c6bc1c728f7>:0 
  at Xamarin.UITest.Configuration.iOSAppConfigurator.StartApp (Xamarin.UITest.Configuration.AppDataMode appDataMode) [0x00017] in <2a16c16730a54859bda72c6bc1c728f7>:0 
  at UniversalApp.UITests.AppInitializer.StartApp (Xamarin.UITest.Platform platform) [0x0002d] in /Users/testing/backend/src/UniversalApp.UITests/AppInitializer.cs:33 
  at UniversalApp.UITests.DummyTests.BeforeEachTest () [0x00001] in /Users/testing/backend/src/UniversalApp.UITests/DummyTests.cs:26 
  at (wrapper managed-to-native) System.Reflection.MonoMethod.InternalInvoke(System.Reflection.MonoMethod,object,object[],System.Exception&)
  at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x0003b] in /Users/builder/jenkins/workspace/build-package-osx-mono/2018-08/external/bockbuild/builds/mono-x64/mcs/class/corlib/System.Reflection/MonoMethod.cs:305 

当我在 Android 上运行相同的测试时,一切都像魅力一样。当我从 xcode 10.2 降级到 10.1 时发生了这种情况,所以可能有什么东西坏了。然而奇怪的是,我可以毫无问题地调试我的 iOS 应用程序。

提前致谢

最佳答案

此问题的原因是 Xcode 10.2 对 Xamarin.UITest 与本地 iOS 模拟器连接的方式进行了更改;在恢复兼容性之前需要更新到 Xamarin.UITest。根据我在重现问题时的观察,即使您降级到 Xcode 10.1,iOS 模拟器似乎保留了 Xcode 10.2 应用的一些设置,因此继续阻止测试。

支持 Xcode 10.2 的当前版本的 Xamarin.UITest 尚不可用,但我怀疑它会在下一个版本中出现。 (撰写本文时的最新版本是 2.2.7.28-dev)

这在之前的其他 Xcode 更新中也发生过:

  • “[iOS] Xcode 10.1 集成:修复了默认模拟器选择”
    Xamarin.UITest 2.2.7
  • “[iOS] 提供对 Xcode 10 的支持”
    Xamarin.UITest 2.2.6
  • “[iOS] 提供对 Xcode 10 beta 6 的支持”Xamarin.UITest 2.2.5.1806-dev
  • “[iOS] Xcode 9.4.1 支持”Xamarin.UITest 2.2.5
  • “[iOS] 支持 Xcode 9.3 和 iOS 11.3”Xamarin.UITest 2.2.4
  • 关于xamarin.ios - UI 测试,无法运行 iOS ui 测试 - 无法确定 X 的模拟器版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55567333/

    相关文章:

    Android 模拟器 - 无法截图 - 不支持的协议(protocol) : 2

    ios - Xamarin UI 测试 "Unable to set fake location on iOS Simulator"

    ios - 单点触控中带有大量代码的启动画面

    c# - 如何使用 UIView.hidden 属性更改 View 的可见性

    C# Mono - 属性名称

    xamarin - 在新的 Android 10 操作系统上运行 Xamarin.UITests 时失败 [DE​​LETE_FAILED_INTERNAL_ERROR]

    ios - 如何签署现有的 .ipa 或应用程序。具有配置文件

    iphone - 是否可以将 Localytics 与 Mono for iOS 一起使用?

    ios - IPA(由 Xamarin.iOS 构建)被 Apple Store 拒绝