3

cicleCI を browserstack に接続して、PhantomJS だけでなく実際の Firefox と Internet Explorer でも、Browserstack サービスを使用して integration_test と単体テストを実行しようとしています。

browserstack-cli を構成しようとしています。ブラウザスタックのトンネルを介して circleci からテストを実行できますが、circleci サーバーに報告することはありません。

このスタックで既にプレイしたことがある場合は、経験を共有していただけますか? どうもありがとうございました!

4

1 に答える 1

1

解決策は、BrowserStackLocal と browserstack-cli ツールを一緒に使用することです。BrowserStackLocal の 64 ビット 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 はテストを起動して browserstack に接続し、そこでブラウザーを使用します...

于 2014-08-13T03:46:37.297 に答える