testemを使ってみる
テストランナーは「testem」を使用します。testemは、コマンドラインでJavaScriptを実行してくれるツールです。testemのコマンドを実行すると、テストを行うためのアクセスURLが発行され、ブラウザでそのURLにアクセスすることでテストが実行されます。testem実行サーバ(PC)がネットワーク上に公開されていれば、OSや端末を問わず、様々なブラウザでのテストを実行することができます。もちろん、node.jsでもテストを行うことができます。
テストフレームワークは主要なものに対応しており、その他テストフレームワークもカスタムアダプターを作成することで、テストを行うことができます。対応しているテストフレームワークは以下のとおりです。
- Jasmine
- QUnit
- Mocha
- Buster.js
testemのインストールと実行
testemの実行にはnode.jsが必要です。node.jsはこちらからダウンロード&インストールしてください。インストール後、コマンドプロンプトから以下のコマンドを実行し、testemをインストールします。
npm install testem -g
では、早速testemの実行を行ってみましょう。テストコードは連載の第3回「JavaScriptのテストコードをNode.js+Jasmineで実行してみよう」で使用したjasmineで動作するテストコードを使います。
testemを使用するためには、まずテストの設定を記述するjsonファイルまたはymlファイルを作成します。設定ファイルは、使用するテストフレームワークや読み込むJavaScriptファイルのパスを指定します。今回は以下のようにJsonファイルで記述しました。設定の内容どおりにJavaScriptファイルを配置します。
{ "framework": "jasmine", "src_files": [ "js/fizzbuzz.js", "test/*spec.js" ] }
c:\testem │ testem.json ├─js(テスト対象のコード) │ fizzbuzz.js │ └─test(テストコード) fizzbuzz.spec.js
では、testemを起動します。以下のようにtestem.jsonがあるディレクトリに移動し、testemというコマンドを実行してみましょう。そうすると、URLが記述された画面が表示されます。ブラウザで「http://localhost:7357/」にアクセスしてみましょう。
cd c:\testem testem
FirefoxやChromeでもアクセスし、テストを実行すると、以下のような画面になります。矢印キーを押すと各ブラウザでのテスト結果が表示されます。テストが失敗した場合は、その内容が表示されます。