Ember.js — CircleCI — BrowserStack

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

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

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


person Zoltan    schedule 01.08.2014    source источник


Ответы (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.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 запустит ваш тест, подключится к стеку браузеров и будет использовать там браузеры...

person Zoltan    schedule 13.08.2014
comment
вам не нужно определять машинную среду? Я получаю следующую ошибку: "browserstack launch chrome --attach" exited unexpectedly with exit code 1. @Zoltan - person Yoni Dabush; 10.02.2016
comment
@YoniDabush извините, я не использую CircleCI / Browserstack в данный момент, я не могу его протестировать, но если конфигурация тем временем изменится и вы найдете решение, сообщите мне, и я обновлю ответ. Спасибо. :) - person Zoltan; 11.02.2016