AppInitializer 始终启动 android 以进行跨平台测试

AppInitializer always launches android for cross platform tests

我正在编写一个 UI 测试,它应该是 Android 和 IOS 之间的跨平台测试。

当我 运行 我的 App Initializer 在 Mac 上时,"platform" Xamarin 对象总是解析为 android(在 运行 测试时确认在调试模式下)即使我打开了一个 iOS 模拟器并且插入了一个 iOS 设备但没有连接任何 Andorid 模拟器或设备。

public static IApp StartApp(Platform platform)
    {
        if (platform == Platform.Android)
        {
            return ConfigureApp
                .Android
                .ApkFile("../../Binaries/Android/com.xamarin.samples.taskyandroid.apk")
                .StartApp();
        }

        return ConfigureApp
            .iOS
            .AppBundle("../../Binaries/iOS/TaskyiOS.app")
            .DeviceIdentifier("Device id")
            .StartApp();
    }

我唯一可以启动 iOS 模拟器的时间是在不评估平台的情况下注释掉 if 条件。

如何让应用程序将 iOS 检测为平台?

感谢您的想法。

确保您 运行 测试了 OS,来自 Unit Tests (XS) 或 Test Explorer (VS) window

  • Xamarin Studio >> View >> Pads >> Unit Tests
  • Visual Studio >> Tests >> Test Explorer

我相信 platform 将默认为 Android 如果您使用 Play / Run 按钮,而 UITest 项目被选为 Startup Project,或者如果您使用 Run All(从 Android 开始,因为它出现在 iOS 之前)

(哇,那张图太大了,抱歉)