デフォルトでは
$ grunt testを実行した後に、watch:testタスクで監視しているファイルを編集and保存すると
以下のエラーを吐いてテストが実行されません・・・(僕の環境だけかもしれませんが)
Running "compass:dist" (compass) task directory .tmp/styles/ create .tmp/styles/main.css (2.475s) Compilation took 2.477s Running "compass:server" (compass) task unchanged app/styles/main.scss Compilation took 0.198s Running "connect:test" (connect) task Fatal error: Port 9001 is already in use by another process.
どうやら9001番ポートでムダに待とうとしているようです。
現象としてはこんな感じかと。
grunt test 実行!!! clean:server coffee createDefaultTemplate jst compass connect:test // 9001ポートで待つ! ... A mocha watch:test // ファイルの監視 !!!ファイルを編集and保存!!! clean:server coffee createDefaultTemplate jst compass connect:test // Aですでに9001を使用してるのでこける
ということでGruntfile.jsを2箇所修正します。
1箇所目 (watchタスクのtestターゲット)
watch: {
...
test: {
files: ['<%= yeoman.app %>/scripts/{,*/}*.js', 'test/spec/**/*.js'],
tasks: ['test:watch'] // ここ! test -> test:watchへ
}
}
2箇所目 (testタスクを登録しているところ)
grunt.registerTask('test', function(target) {
var tasks = ['clean:server', 'coffee', 'createDefaultTemplate', 'jst', 'compass'];
if (target !== 'watch') {
// watchタスクから呼ばれた場合はなにもしない。
// それ以外は9001で待つ!
tasks.push('connect:test');
}
tasks.push('mocha');
if (target !== 'watch') {
// watchタスクから呼ばれた場合はなにもしない。
// それ以外はwatchタスクを実行する
tasks.push('watch:test');
}
grunt.task.run(tasks);
});
0 件のコメント:
コメントを投稿