Karmaでテストコードが動いたのも確認できたので、IEでもテストを実行できるようにしていきます。IEのVMを入れる若干話が逸れてしまいましたが、続きです。IEからIE用のVMをすでにダウンロード済みの方が多いと思います。ための手順を書いていきます。インストール済みのVMは使用しないので、ディスク容量に余裕が無い方はすでに入っているVMを消して頂いてから次へ進んで下さい。http://xdissent.github.io/ievms/このツールを使用します。11は容量がでかいので入れない)ので、このようなコマンドになると思います。ディスク容量は20GBくらい空きがあればインストール出来ると思います。だいたい20GBくらい、としています。\;けっこう時間がかかるので、回線の太い環境で気長にお待ちください。IEVMS_VERSIONSという環境変数にインストールしたいIEのバージョンを指定しています。インストール後に、ダウンロードしてきたVMは不要なのでクリーンアップしています。ついでにゴミ箱も空にしておくと容量がだいぶ空きます。インストールが終わり、Virtualboxで下記のように表示されていればOKです。IE用にKarmaの設定を変更やっとIEを使う準備が整いました。Karmaの設定を変更し、VM内のIEでテストコードを実行できるようにします。IE9を追加した差分がこちらです。念のためコマンドも載せておきます。karma-ievmsbrowsersにVirtualboxでの表示名をそのまま指定しています。この値は変更可能なのかどうか試していません。設定をいじっていなければこれで動きます。startしてみると、VMが起動して自動的にKarmaのテストページが開かれテストが実行されます。ちなみにctrl+cなどでKarmaを終了すると自動でVMのシャットダウンまでやってくれます。どんだけ便利なんだよ。IE9で動くことを確認したので、本題のIE8も追加します。IE8だけテストに失敗すれば成功です。ただのIE8ならArray#reduceは使えないはずなのでエラーになります。失敗させることから始めましょう。動かないことが確認できたところで、es5のshimを入れてIE8でもテストが通るようにしてみます。程度にIE8対応をしたい方向けの対応です。es5-shimは、ざっくり言うとIE8などes5のメソッドに対応していないブラウザ向けのpolyfillです。karma-es5-shimKarmaの設定ファイルも合わせてこちらのように編集しておきます。startしてみると、IE8もテストに通ったと思います。これでIE9以上が対象だけど、shimを入れればIE8対応、とうたえるようになりました。インプットしつつアウトプットしつつ時代に食らいついています。この速度でのツールの進化はjsの需要が高まっているからこそだと思うので、jsが必要とされていることに嬉々としています。ちなみに、本格的に色々なブラウザ・OS・バージョンでテストを行いたい場合にはSauceLabsを使ったほうが良いと思います。CI回したり、確実な品質担保をしたいとき向けといった印象があります。IEに最低限対応していることをテスト駆動で書いていくだけなら、今回の記事のようにローカル環境を活用したほうがスピーディにことが済みそうです。CIと組み合わせて、PR時に各ブラウザのテストを走らせる方法を書きたいと思います。