Ember.js - CircleCI - BrowserStack

Я пытаюсь соединить наш cicleCI с помощью browserStack и запускаю наши Integration_test и модульные тесты не только с PhantomJS, но и на реальном Firefox и Internet Explorer, используя сервис Browserstack.

Я пытаюсь настроить browserstack-cli. Я могу запустить тест из circleci через туннель на Browserstack, но никогда не отправлять отчет серверу circleci.

Не могли бы вы поделиться своим опытом, если вы уже играли с этим стеком? Большое спасибо!

1 ответ

Решение

Решением является совместное использование инструментов BrowserStackLocal и browserstack-cli. 64-разрядная версия BrowserStackLocal для Linux создает туннель от сервера circleCI до сервера Browserstack. После этого мы можем использовать browserstack-cli для запуска браузеров и запуска тестов из testem.

Скачать BrowserStackLocal

и вставить в .browserstack папка в вашем проекте.

Создать скрипт,

который запустит и создаст настройки для browserstack-cli. Вы должны установить глобальные переменные в circleCI, и вы можете хранить там свои секретные данные доступа. Давайте назовем этот файл runthis.sh и сохранить в .browserstack папка. Этот скрипт также запустит ваш двоичный файл BrowserStackLocal, поэтому туннель будет существовать.


    #!/bin/bash
    echo "{\"username\":\"`echo $BS_USER`\", \"password\":\"`echo $BS_PASSWORD`\", \"privateKey\": \"`echo $BS_KEY`\", \"apiKey\":\"`echo $BS_KEY`\"}" >> ~/.browserstack/browserstack.json
    ./.browserstack/BrowserStackLocal $BS_KEY &

Конфигурация CircleCI

(circle.yml) файл в основном зависит от вашего проекта. Мы должны скопировать .browserstack Папка в домашней папке, установите bower, browserstack-cli и testem.

Пример:


machine:
  timezone:
    Pacific/Auckland
  node:
    version: v0.10.28

dependencies:
  pre:
    - mv ./.browserstack ~/
    - sh ~/.browserstack/runthis.sh

  post:
    - bower install
    - npm install browserstack-cli -g
    - npm install testem -g

test:
  override:
    - PATH=$PATH:bin grunt integration_tests_cli; testem ci
    - PATH=$PATH:bin grunt tests_cli; testem ci

Конфигурация Testem:

testem.yml - Большая часть зависит от вашего проекта. Важным в нашем случае является launchers раздел.


framework: "qunit"
test_page: "tmp/index.html"

src_files:
  - "tmp/assets/application.js"
  - "tmp/tests.js"
  - "tmp/integration_tests.js"

launchers:
  bs_chrome:
    command: browserstack launch chrome --attach 
    protocol: browser
    timeout: 300

launch_in_ci:
  - "PhantomJS"
  - "bs_chrome"

launch_in_dev:
  - "Chrome"
  - "Firefox"
  - "PhantomJS"

parallel: 2

Итак, если вы обновите свой проект на github, circleci запустит ваш тест и подключится к стеку браузеров и будет использовать там браузеры...

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