web-dev-qa-db-ja.com

travisを実行させる方法Angular test on Chrome( "環境変数CHROME_BINを設定してください")

私はサンプルAngular yeomanによって生成されたプロジェクトに取り組んでいます。
ローカルでカルマテストを実行できます(システム変数CHROME_BINをクロムバイナリを指すように設定しましたが、これはより洗練された方法で実行できた可能性があります。簡単な回避策です。)

ただし、travisを使用してビルドを成功させようとすると、次のエラーが発生します。

ERROR [launcher]: Cannot start Chrome
    Can not find the binary google-chrome
    Please set env variable CHROME_BIN

説明されている手順に従いました ここ (基本的にgenerator-travis-ciを使用)
次に、それを修正しようとしました this -別のエラーが発生しました:
/home/travis/build.sh: line 142: ./.travis/scripts/install_chrome.sh: Permission denied


これは標準のangular Yeomanで作成されたアプリです-物事は箱から出してすぐに機能するはずですが、現実は異なります...
誰かが正常に構成しましたか?


user@machine:~/somewhere $ yo -v; grunt --version; bower -v
1.0.4
grunt-cli v0.1.9
grunt v0.4.1
1.2.6

私のTravisの仕事: https://travis-ci.org/vucalur/editor-yeoman-test

37
vucalur

Firefox(VMにすでにインストールされているため)とPhantomJS(ポータブルでヘッドレスであるため)しか実行できないと言って申し訳ありません。

Firefoxを起動するために.travis.ymlファイルに以下を追加します。

before_install:
  - "export DISPLAY=:99.0"
  - "sh -e /etc/init.d/xvfb start"

次に、設定でFirefoxをKarmaブラウザとして有効にする必要があります。

ドキュメント

18
gustavohenke

このソリューションを使用して、Travis-CI VMにプレインストールされたChromiumバージョンを使用して実行します: https://github.com/karma-runner/karma/issues/1144#issuecomment-53633076

.travis.yml

  node_js:
  - "0.10"

script: node_modules/karma/bin/karma start test/karma.conf.js --single-run

before_install:
  - export CHROME_BIN=chromium-browser
  - export DISPLAY=:99.0
  - sh -e /etc/init.d/xvfb start

karma.conf.js

module.exports = function(config) {
  var configuration = {

    /* ... */

    // start these browsers
    browsers: ['Chrome', 'ChromeCanary'],

    customLaunchers: {
      Chrome_travis_ci: {
        base: 'Chrome',
        flags: ['--no-sandbox']
      }
    },

    /* ... */

  };

  if(process.env.TRAVIS){
    configuration.browsers = ['Chrome_travis_ci'];
  }

  config.set(configuration);
};
30
Jan Paepke

Karma-runnerプロジェクトの問題に基づく( https://github.com/karma-runner/karma/issues/1144#issuecomment-53633076CHROME_BIN.travis.yml環境変数を設定し、customLauncherを構成する必要がありますカルマファイル構成で。

たとえば、.travis.ymlファイルの内容は次のようになります。

language: node_js
node_js:
    - '0.10'
before_script:
    - 'export CHROME_BIN=chromium-browser'
    - 'export DISPLAY=:99.0'
    - 'sh -e /etc/init.d/xvfb start'
    - 'npm install -g bower karma grunt-cli jshint'
    - 'npm install'
    - 'bower install'

そしてあなたのkarma.conf.jsコンテンツ:

module.exports = function(config) {
    config.set({

        // ... your default content

        // This is the new content for your travis-ci configuration test
        //  Custom launcher for Travis-CI
        customLaunchers: {
            Chrome_travis_ci: {
                base: 'Chrome',
                flags: ['--no-sandbox']
            }
        },

        // Continuous Integration mode
        // if true, it capture browsers, run tests and exit
        singleRun: true 
    });

    if(process.env.TRAVIS){
        config.browsers = ['Chrome_travis_ci'];
    }

};
7
Wilson Mendes

オプション1:APTアドオン

APTアドオン を使用してgoogle-chrome-stableパッケージをインストールし、実行することで、TravisにAngular test in Chrome Xvfbを使用してヘッドレスです。

# Set language
language: node_js

# Set version of node
node_js:
  - node

# Set DISPLAY for Xvfb
env:
  - DISPLAY=:99.0

# Use APT Addon to install Chrome
addons:
  apt:
    sources:
      - google-chrome
    packages:
      - google-chrome-stable

# Start Xvfb so you can run headless Chrome
before_install:
  - sh -e /etc/init.d/xvfb start

# Install packages
install:
  - npm install

# Run tests in continuous integration mode
script:
  - ng test --single-run

オプション2:Chromeアドオン

または、 仮想化環境 がLinuxTrustyまたはOSXの場合、ヘッドレスモードでChromeアドオンを使用できます。

# Use a trusty version of linux
dist: trusty

# Set language
language: node_js

# Set version of node
node_js:
  - node

# Install Chrome addon
addons:
  - chrome: stable

# Install packages
install:
  - npm install

# Run tests in continuous integration mode with headless chrome
script:
  - karma start --single-run  --browsers ChromeHeadless

E2eテストを実行するには、protractor.conf.jsを更新してヘッドレスクロームを指定します。

capabilities: {
  browserName: 'chrome',

  chromeOptions: {
     args: [ '--headless', '--disable-gpu' ]
   }
}
4