Запуск тестов для указанной в параметрах платформы (Android или iOS)

Java, Maven, Appium, Cucumber

Структура проекта - пакеты:

  • android
  • ios
  • features

Тест кейсы расположены в пакете features - используется Cucumber.
Запуск тестов как через билд jar файла, так и через Intellij IDEA.

Сейчас в features (тест кейсы Cucumber) используется тег @ios-simulator. По этому тегу Cucumber находит нужный класс с @Before(value="@ios-simulator"). При запуске теста работает только iOS. Если поменять все теги в features на @android, соответственно запустятся тесты под Android.

Проблема: выбрать платформу для запуска тестов можно только изменив все теги у всех тест кейсов в feature - неудобно и рутинно.

Задача: нужная платформа для запуска тестов должна указываться в каком-то одном месте, например в файле pom.xml.

Рулит запуском именно Cucumber. Но вот как сделать выбор платформы более удобным - не знаю. Динамически формировать теги в features (брать значение из pom.xml файла) не получается. Буду рад любым идеям.

1 лайк

Предлагаю следующее решение:

  1. Протегать все универсальные тесты сразу @ios-simulator @android

  2. В maven при запуске передавать платформу параметром — например, -Dplatform=android

  3. В pom-файле создать 2 профиля, активирующихся по параметру, — например:

    android platform android ...
  4. И уже в деталях профиля (в секции <build>), в конфигурации запускающего тесты плагина, указать нужные платформо-зависимые параметры — например, через --tags