CygwinとKarma+PhantomJSの相性がイマイチ


Anglur.JSをいじくっているうちにKarmaというテストランナーとPhantom.JSというヘッドレスブラウザ(プログラム中から呼び出せるテスト用の仮想ブラウザというべきか)に出会いました。

こりゃすげーと思って試したんですが、なんかCygwinとの相性がわるい。
node.js自体がCygwinと相性が悪いという話もあるが…。

ハマりポイントは以下でした。

  1. phantom.jsのインストールでエラーに
  2. karmaからブラウザが立ち上がらない(phantomJS含む)
  3. karmaを止めてもphantomJSのプロセスが残る

1. phantom.jsのインストールでエラーに

KarmaとphantomJSは -g つけてグローバルインストールしたほうがいいですね。
あと、cygwin上からでなくDOS窓から。
なんかインストール途中でコケるんですよ。

DOS窓で
> npm install -g phantomjs@1.9.2-1
> npm install -g karma

phantomjsのバージョンを指定しているのは目下の最新版の1.9.2-2だとコケるので。

karmaは -g つけると自動的にパスが通るので。どっちみちプロジェクトごとに分けるライブラリでもないし。

2. karmaからブラウザが立ち上がらない(phantomJS含む)

デフォルトではChromeを立ち上げに行くのですがこれが立ち上がらない。
自分のPCはユーザーホームをDドライブに置くように設定しているせいかもしれません。

最初はCygwinで ~/.bashrc にCHROME_BINを設定していたのですがこれだとダメです。
なんだか / -> \に置き換えて解釈するようでchromeの実行ファイルが見つからないと。

Windowsの環境変数に設定したら行けました。

PhantomJSも起動しなかったのですが -g でインストールしたら起動するようになりました。

3. karmaを止めてもphantomJSのプロセスが残る

で、めでたくkarmaからChrome,PhantomJSが起動してテストが実行されるようにはなったのですが、KarmaをCtrl+Cで停止してもPhantomJSのプロセスが停止しない…。

結局KarmaをCygwinからキックするのは諦めてDOS窓でやることになってしまったというオチでした。。。