read久々の更新です。社会人になってからいつの間にか1年が経過していました。時が立つのは早いものです。最近はインプットを増やしてばかりで全然アウトプットできていなかったので、少しずつアウトプットできればと思います。ここんところ業務の都合でPHPネタばかりだったので、そろそろ本来のフロントエンドの話に切り替えようと思います。実行してみようと思います。IE9のテストができるnodejsのコードでブラウザ上のテストができるes5-shimを入れてes5依存の処理でもIE8で動けるようにする今回の記事の内容を反映したリポジトリも作成しました。記事だけではわからない箇所はそちらも合わせてご覧下さい。Leko/karma-ievm-seedhttps://github.com/Leko/karma-ievm-seed使うものVirtualboxJasmineKarmaBrowserifykarma-ievmsその他各種Karma用アダプタさり気なくBrowserifyが出てきていますが、下記の参考資料を見つつ情報を保管してもらえればと思います。JasmineはMochaと書き方がほとんど変わらないのでどちらか知っていれば大丈夫だと思います。フォーカスするため本題から逸れる話はなるべく割愛します。リポジトリをつくるでは早速進めていこうと思います。-Dと略すことができるようです。以降の手順でもバシバシ使っています。initすると色々と聞かれると思います。テストの構成を聞かれるので、テストフレームワークはJasmine。requirejsは使わない。対象ブラウザはChromeあたりを選んでおけばよいと思います。この対話CLIで設定するより、どうせ後で直接設定ファイルをいじるのでこの段階では正直なんでもよいです。(蛇足)dotenvを使用する私の環境はFirefoxをbrew-caskで入れてしまっているので、通常のパスとはズレています。Karmaでそのようなブラウザを起動する場合、FIREFOX_BINという環境変数を指定する必要があります。.bash_profileなどに環境変数を書いておいても良いのですが、のちのちSauceLabsの接続情報を入れたりと、環境変数をいじれるようにしておくと何かと都合が良いのでdotenvを使用します。dotenvはプロジェクト直下の.envというファイルを読み取り環境変数に自動的にセットしてくれるツールです。initで作成されたkarma.conf.jsの先頭にも以下の処理を追加しておきます。require('dotenv').load();IE8で落ちるテストを記述するまだIEの準備はしていませんが、まずはIE8では落ちるテストを記述してみようと思います。IE8で使用できないメソッドとして、Array#reduceを採用しました。テスト用のソースコードとテストコードはこちらになります。このままではブラウザで動作しません。言ってブラウザで動かすためにわざわざグローバルを汚染したくもありません。いうことで、Browserifyを使用してnodeで動くコードをブラウザでも動くように変換します。brfsKarmaの設定ファイルはこちらのように変更して下さい。概要だけ抜き出すと、karma-browserifyとbrfsを追加frameworksにbrowserifyの指定を追加preprocessorsでテストコードをbrowserifyで変換する指定を追加browserifyの変換設定を追加です。brfsは同期的にBrowserifyのビルドが行えるツールです。以上の設定をしたらテストを実行してみます。start設定ファイルのbrowsersに指定されたブラウザが立ち上がりテストが実行されたと思います。ソースコードを編集しても、テストコードを編集しても、保存すると自動でテストが再実行されたと思います。