ブラウザ

自分でブラウザをキャプチャするのは面倒で時間がかかる作業になる可能性があります。ただし、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 を作成することで上書きできます。

POSIX シェル #

# 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

Windows cmd.exe #

C:> SET IE_BIN=C:\Program Files\Internet Explorer\iexplore.exe

Windows Powershell #

$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は、キャプチャされた特定のブラウザをサーバーが追跡するために使用されます。