自分でブラウザをキャプチャするのは面倒で時間がかかる作業になる可能性があります。ただし、Karma は自動化します。単純に 設定ファイルにキャプチャするブラウザを追加します。
browsers: ['Chrome']
その場合、Karma はこれらのブラウザの自動キャプチャと、作業が終わった後の終了を行います。
テストスイートに Firefox を追加する方法は次のとおりです
# Install the launcher first with npm:
$ npm install karma-firefox-launcher --save-dev
次に、設定ファイル内でブラウザ名を browsers
配列に追加します。
module.exports = function(config) {
config.set({
browsers : ['Chrome', 'Firefox']
});
};
また、 browsers
設定はデフォルトでは空であることに注意してください。
もちろん カスタムプラグイン も記述できます!
http://<hostname>:<port>/
を開くことで、ブラウザをキャプチャすることもできます。<hostname>
は Karma サーバーが動作しているマシンの IP アドレスまたはホスト名で、<port>
は Karma サーバーがリッスンしているポートです(デフォルトは 9876
)。既定の設定の場合は、ブラウザを http://localhost:9876/
に向けてください。
これにより、Karma (またはローカルトンネルを使用している) を実行しているマシンと同じネットワーク上のタブレットやスマートフォンなどの任意のデバイスでブラウザをキャプチャできます。
ランチャーの中には設定できるものもあります。
sauceLabs: {
username: 'michael_jackson'
}
設定されたランチャーとして定義することもできます。
customLaunchers: {
chrome_without_security: {
base: 'Chrome',
flags: ['--disable-web-security']
},
sauce_chrome_win: {
base: 'SauceLabs',
browserName: 'chrome',
platform: 'windows'
}
}
カスタムランチャーには表示名が設定できます。設定した場合、この名前はユーザーエージェントではなくレポートに使用されます。カスタムランチャーに表示名を設定する方法を説明するコードスニペットの例を次に示します。
customLaunchers: {
chrome_without_security: {
base: 'Chrome',
flags: ['--disable-web-security'],
displayName: 'Chrome w/o security'
}
}
定義が上記のようになっている場合、ブラウザはログとレポートで Chrome w/o security
として表示されます。
各プラグインには、特定の OS 上でブラウザバイナリを見つけるためのいくつかのデフォルトパスがあります。これらの設定は <BROWSER>_BIN
環境変数、または symlink
を作成することで上書きできます。
# Changing the path to the Chrome binary
$ export CHROME_BIN=/usr/local/bin/my-chrome-build
# Changing the path to the Chrome Canary binary
$ export CHROME_CANARY_BIN=/usr/local/bin/my-chrome-build
# Changing the path to the PhantomJs binary
$ export PHANTOMJS_BIN=$HOME/local/bin/phantomjs
C:> SET IE_BIN=C:\Program Files\Internet Explorer\iexplore.exe
$Env:FIREFOX_BIN = 'c:\Program Files (x86)\Mozilla Firefox 4.0 Beta 6\firefox.exe'
// in the karma.conf.js
browsers: ['/usr/local/bin/custom-browser.sh'],
// from cli
karma start --browsers /usr/local/bin/custom-browser.sh
ブラウザスクリプトは、サーバーに接続するために使用するIDパラメータのURLである1つの引数を取る必要があります。提供されたIDは、キャプチャされた特定のブラウザをサーバーが追跡するために使用されます。