Xamarin UI测试:使用一个构建配置同时运行iOS和Android测试

问题描述 投票:0回答:1

所以,我在Mac上,使用Visual Studio和Xamarin UI测试在真实的iphone和真实的android设备上运行ui测试。

我已经将Android和IOS的classic测试装置设置为测试的不同变体。

    [TestFixture(Platform.Android)]
    [TestFixture(Platform.iOS)]
    public class Tests
    {
        IApp app;
        Platform platform;

        public Tests(Platform platform)
        {
            this.platform = platform;
        }

        [SetUp]
        public void BeforeEachTest()
        {
            app = AppInitializer.StartApp(platform);
        }
    }
}

这是我的设备应用程序配置,在此我不使用设备ID,而是在运行时在IDE中指定设备:

 public static void StartApp()
        {

            if (Platform == Platform.Android)
            {
                _app = ConfigureApp
                    .Android
                    .InstalledApp(appBundleName)
                    .EnableLocalScreenshots()
                    .PreferIdeSettings()
                    .StartApp(AppDataMode.Clear);
            }

            if (Platform == Platform.iOS)
            {
                _app = ConfigureApp
                    .iOS

                    .InstalledApp(appBundleName)
                    .PreferIdeSettings()
                    .EnableLocalScreenshots()
                    .StartApp(AppDataMode.Clear);
            }
        }
    }

当我在单个平台上运行测试时,此方法有效-即注释掉IOS平台固定装置,仅运行Android测试,反之亦然。但是,如果我在两个平台上都有文本设备,并尝试运行所有测试,则会遇到测试无法找到其中一个设备的问题。例如,发现android很好,并且这些测试按预期运行,但是所有ios测试均失败。

我怀疑这与我的构建配置有关,因为更喜欢IDE设置似乎依赖于构建配置来设置应用程序的目标设备。但是,我想检查一下-是否可以使用“ prefer ide”设置在IOS和ANDROID平台上运行测试?我已经在测试板中设置了测试应用程序,并且两者似乎都针对实际设备。

android ios visual-studio-mac xamarin.uitest
1个回答
0
投票

我想出了自己的问题,以为可以将其发布,以防对其他人有用。

总而言之,无论出于何种原因,两种平台都不能使用.PreferIdeSettings()。 Visual Studio Mac似乎只知道如何为每个目标设备的每个项目指定一个构建配置。也许如果其他人设置了一个项目,不同的应用程序将共享一个构建配置,则可以解决此问题。实际上,我发现我必须至少指定一个平台的设备ID才能成功将测试成功定位到两个平台的目标设备。

© www.soinside.com 2019 - 2024. All rights reserved.