Ember.js - CircleCI - BrowserStack

标签 ember.js qunit browserstack circleci testem

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

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

如果您已经玩过这个堆栈,能否请您分享您的经验?非常感谢!

最佳答案

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

下载BrowserStackLocal

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

创建脚本,

它将运行并为 browserstack-cli 创 build 置。你必须在 circleCI 中设置全局变量,你可以在那里 secret 保存你的访问细节。我们将此文件命名为 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 config:

testem.yml - Most of the part is depend of your project. Important in our case is launchers section.

 
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 并在那里使用浏览器...

关于Ember.js - CircleCI - BrowserStack,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25073949/

相关文章:

javascript - QUnit : One test per method with multiple assertions or multiple tests per method?

node.js - 即使在 Nightwatchjs 中测试失败,Browserstack 也会报告成功

python 使用curl上传文件

ember.js - 在 Ember 模板中使用函数绑定(bind)元素类名?

jquery - 在 ember 应用程序中使用 jquery

node.js - Ubuntu + Ember 不工作

javascript - Ember.js - 在将一个组件添加到 Handlebars 模板之前,我可以将其嵌套到另一个组件中吗?

jquery - QUnit:如何在不修改ajax调用的情况下测试ajax调用

javascript - 如何在QUnit中加载不同的html文件?

java - 从 browserstack 获取屏幕截图