私はサンプル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
Firefox(VMにすでにインストールされているため)とPhantomJS(ポータブルでヘッドレスであるため)しか実行できないと言って申し訳ありません。
Firefoxを起動するために.travis.yml
ファイルに以下を追加します。
before_install:
- "export DISPLAY=:99.0"
- "sh -e /etc/init.d/xvfb start"
次に、設定でFirefoxをKarmaブラウザとして有効にする必要があります。
このソリューションを使用して、Travis-CI VMにプレインストールされたChromiumバージョンを使用して実行します: https://github.com/karma-runner/karma/issues/1144#issuecomment-53633076
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
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);
};
Karma-runnerプロジェクトの問題に基づく( https://github.com/karma-runner/karma/issues/1144#issuecomment-53633076 )CHROME_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'];
}
};
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
または、 仮想化環境 が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' ]
}
}