Ember.js - CircleCI - BrowserStack



我尝试将我们的cicleCI与browserstack连接在一起,并使用browserstack服务不仅在PhantomJS上,而且在真实的Firefox和Internet Explorer上运行我们的integration_test和单元测试。

我尝试配置browserstack-cli。我可以通过浏览器堆栈上的隧道从circleci运行测试,但永远不会向circlecci服务器报告。

如果你已经玩过这个堆栈,你能分享一下你的经验吗?非常感谢!

解决方案是同时使用BrowserStackLocal和browserstack-cli工具。BrowserStackLocal的64位linux版本构建了从circleCI服务器到Browserstack服务器的隧道。之后,我们可以使用browserstack-cli启动浏览器并从testem运行测试。

下载BrowserStackLocal

并插入到项目中的.browserstack文件夹中。

  • BrowserStackLocal的64位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将启动你的测试并连接到browserstack,并在那里使用浏览器。。。

相关内容

  • 没有找到相关文章

最新更新