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

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

如果您已经使用过此堆栈,能否请您分享经验?非常感谢你!

最佳答案

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

下载BrowserStackLocal

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

  • BrowserStackLocal的64位Linux版本:http://www.browserstack.com/local-testing(二进制)

  • 创建一个脚本,

    它将运行并为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 - Ember.js-CircleCI-BrowserStack,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25073949/

    10-11 19:50