Интегрировать калебас в андроид Дженкинс

Я разработал тест с использованием Calabash-Android. Все работает так, как должно. Теперь я хочу запустить сценарии в Дженкинс.

1) Какой плагин я должен установить в Jenkins?

2) Как запустить тест? В настоящее время я использую команду: запустить Calabash-Android, я не добился другого пути.

3) Что мне дополнительно установить на сервере?

1 ответ

  • устанавливать Android Emulator plugin, Вам нужно виртуальное устройство для запуска ваших тестов.
  • устанавливать Rake а также RVM плагины, как описано здесь. Тебе нужно ruby установлен в jenkins чтобы запустить ваши тесты, используя calabash-android драгоценный камень.
  • Создайте shell script в jenkins и установить Bundler,
  • добавлять gemfile к вашей рабочей области и укажите необходимые драгоценные камни. В нашем случае нам нужно calabash-android перл:

    # A sample Gemfile
    source "https://rubygems.org"
    
    # gem "rails"
    gem "calabash-android", "0.5.12"
    
  • Бежать bundle install в jenkins используя сценарий оболочки. Это установит calabash-android драгоценный камень.

  • Запустите ваши тесты из папки, которая содержит gemfile с 4-го шага. В этот момент вы должны иметь bundler а также calabash-android установлен в jenkins,

    bundle exec calabash-android run "PATH_TO_APK" ADB_DEVICE_ARG=${ANDROID_AVD_DEVICE}

    ${ANDROID_AVD_DEVICE} - имя эмулятора, предоставленное Android Emulator plugin,

  • Вам также может понадобиться Cucumber reports plugin а также Cucumber test results plugin,

Обновление: скриншоты из Jenkins Работа и сценарий оболочки.

  • Конфигурация эмулятора Android для 1-го шага

Конфигурация эмулятора

  • Рубиновая среда для 2-й ступени

Рубиновая среда

  • Сценарий оболочки для 6-го шага

Сценарий оболочки

  • Отчеты об испытаниях огурцов за 7 этап

Протоколы испытаний огурца

  • Огурец + структура проекта калебас. calabash папка находится в корневой папке Android проект.

Структура файлов

  • Cucumber.yml Файл содержит различные настройки, связанные с огурцом. Особенно там указаны указанные функции для платформы. И можно выбрать платформу, используя параметр "-p android" или же "-p ios",

cucumber.yml

  • .calabash_settings содержит информацию о keystore используется для .apk подписание во время сборки. Calabash нужно то же самое keystore для test_server подписание.

calabash_settings

Скрипт run_android_features:

cd ..

PARAMS="-p android"

while getopts ":rd:" OPTION; do
        case $OPTION in

                r)
                    PARAMS=$PARAMS" --format json -o cucumber.json"
                    ;;
                d)
                    PARAMS=$PARAMS" ADB_DEVICE_ARG=$OPTARG"

                    ;;
                [?])    echo "Usage: $0 [-r] [-d DEVICE_ID].\n     -r: should create reports.\n     DEVICE_ID: where to run tests."
                        exit 1;;
        esac
done

# clear old files
rm -rf screenshot*
rm -rf test_servers
# resign apk
bundle exec calabash-android build "../app/build/outputs/apk/app-debug.apk"
# run tests
bundle exec calabash-android run "../app/build/outputs/apk/app-debug.apk" $PARAMS
Другие вопросы по тегам