gruntでヘッドレステストする
準備
まず、grunt-jasmine-runnerをインストールします。
$npm install grunt-jasmine-runner
次に、phantomjsにパスを通します。homebrewで持ってくるか公式サイトでダウンロードしてきましょう。
$brew install phantomjs
grunt.js内の記述は以下の通りです。
jasmine: { src: [ 'war/js/lib/jquery-1.8.3.js', 'war/js/lib/spine/spine.js', 'war/js/lib/**/*.js', 'war/js/model.js', 'war/js/templates.js', 'war/js/view.js', 'war/js/controller.js', 'war/js/*.js' ], specs: 'target/js.test/*Spec.js', server: { port: 3103 }, timeout: 10000 }
jasmineタスクには主にsrc, specs, helpersオプションがあります。srcはテスト対象のファイル、specsはテストファイル、helpersはjasmine-jqueryみたいなテスト時のヘルプライブラリを記述するところです。srcオプションには*.jsだけ記述してもいいのですが、読み込まれる順番によってエラーが出てしまう(jQueryがないなど)ため依存関係にあるファイルを先に指定しています(requrejsもオプションで使える)。
実行
$grunt jasmine
を実行するとポート3103でサーバが立ち上がりテストが行われ、コマンドラインに結果が出力されます。もし実行結果をブラウザで見たい場合は代わりに
$grunt jasmine-server
を実行してください。またwatchタスクにjasmineタスクを追加しておけばファイルの更新のたびテストを実行できます。