Как запустить автоматизацию тестирования на основе Maven-Cucumber-JVM на Bitrise

Можно ли запустить пакет автоматизации тестирования на основе Java на Bitrise CI/CD?

Функциональные возможности, на которые я буду обращать внимание: - Maven Runtime - Передача строковых параметров - Cucumber-JVM - Подключение к облачным устройствам, таким как поставщик - Browserstack

Кроме того, какую работу нам нужно настроить на Bitrise, для этой цели

Спасибо

1 ответ

Bitrise определенно предоставляет эти функции и может автоматически настраивать или рекомендовать какое-либо решение, пока вы выполняете настройку проекта. Если вам понадобится какая-либо помощь / руководство в процессе, обратитесь в службу поддержки Bitrise (через чат или по электронной почте), они могут помочь вам с вашей конкретной настройкой:)

Это может быть достигнуто с помощью шага сценария, который вызывает сценарий внутри вашего репозитория: (Путь относительно вашего репозитория)

Шаг сценария:

#!/usr/bin/env bash
set -ex

bash ./scripts/bitrise/test_controller.sh

Внутри test_controller.sh у нас есть логика, которая контролирует выполнение других сценариев bash (также можно использовать ruby), в которой мы затем запустим maven:

test_controller.sh

#!/usr/bin/env bash
set -ex

if [[ "$SHOULD_RUN_SPECIFIC_TESTS" == "false" && "$SHOULD_RUN_RELEASE_TESTS" == "false" ]]; then
  if [[ $BITRISE_TRIGGERED_WORKFLOW_TITLE == "iOS-Appium" ]]; then
    echo "=> Executing run_develop_ios_tests.sh"
    bash ./scripts/bitrise/ios/run_develop_ios_tests.sh
    exit 0
  elif [[ $BITRISE_TRIGGERED_WORKFLOW_TITLE == "Android-Appium" ]]; then
    echo "=> Executing run_develop_android_tests.sh"
    bash ./scripts/bitrise/android/run_develop_android_tests.sh
    exit 0
  fi
fi

Если мы не хотим запускать определенные тесты, а не выпускать, а рабочий процесс, вызвавший этот запуск, - iOS-Appium, то мы запускаем execute run_develop_ios_tests.sh:

run_develop_ios_tests.sh

#!/usr/bin/env bash
set -ex

mvn clean test \
  -DplatformName=IOS \
  -Dsurefire.suiteXmlFiles="${XML_FILES}" \
  -DIOS_DEVICE_NAME="${IOS_DEVICE_NAME}" \
  -DIOS_PLATFORM_VERSION="${IOS_PLATFORM_VERSION}" \
  -DSAUCE_USERNAME="${SAUCE_USERNAME}" \
  -DSAUCE_ACCESS_KEY="${SAUCE_ACCESS_KEY}"

Логика внутри тестового контроллера управляется переменными env, как и строковые параметры, которые определяют наши mvn clean test команда.

Поскольку мы подключаемся к SauceLabs удаленно, нам не нужен специальный агент для этого. Только JDK и Maven, которые предустановлены.

Другие вопросы по тегам