Как запустить автоматизацию тестирования на основе 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, которые предустановлены.