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
папка в вашем проекте.
- 64-разрядная версия BrowserStackLocal для Linux: http://www.browserstack.com/local-testing (Binnaries)
Создать скрипт,
который запустит и создаст настройки для 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 запустит ваш тест и подключится к стеку браузеров и будет использовать там браузеры...