Тесты пользовательского интерфейса Xamarin: запуск обоих тестов iOS и Android с одной конфигурацией сборки - PullRequest
0 голосов
/ 31 января 2020

Итак, я нахожусь на Ма c, использую тесты пользовательского интерфейса Visual Studio и Xamarin для запуска тестов пользовательского интерфейса на реальном iphone и реальном android устройстве.

У меня есть classi c настройка тестового прибора с Android и IOS в качестве различных вариантов для испытаний.

    [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);
        }
    }
}

Это мой Конфигурация приложения устройства, где вместо использования идентификаторов устройств я указываю устройства в своей 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);
            }
        }
    }

Это работает, когда я запускаю тесты на одной платформе - ie, комментарий выключите IOS платформенное устройство и проведите только тесты Android, или наоборот. Но если у меня есть текстовые данные для обеих платформ, и я пытаюсь выполнить все тесты, я сталкиваюсь с проблемой, когда тесты не могут найти одно из устройств. Скажем, что, скажем, android просто отлично, и эти тесты выполняются, как и ожидалось, но все ios тесты не пройдены.

Я подозреваю, что это связано с моей конфигурацией сборки, так как предпочтение настроек IDE зависит от Конфигурация сборки для установки целевого устройства для приложения. Тем не менее, я хотел бы проверить - можно ли запускать тесты на платформах IOS и ANDROID, используя настройки «предпочтения»? У меня на тестовой панели установлены тестовые приложения, и оба, похоже, нацелены на реальные устройства.

1 Ответ

0 голосов
/ 01 февраля 2020

Я разобрался со своим вопросом, подумал, что опубликую его на тот случай, если он пригодится кому-либо еще.

В сумме, по любой причине, вы не можете использовать .PreferIdeSettings() для обеих платформ. Visual Studio Ma c, похоже, знает только, как указать одну конфигурацию сборки для проекта на целевое устройство. Возможно, если у кого-то еще есть проект, в котором разные приложения будут использовать конфигурацию сборки, это можно обойти. На самом деле, я обнаружил, что мне нужно было указать хотя бы один идентификатор устройства одной платформы, чтобы успешно пройти тестирование целевых устройств для обеих платформ.

...