Grunt config watch and karma:unit in single task
grunt-contrib-watch, gruntjs, javascript, karma-runner
Solution
Use grunt-concurrent to run both the watch and karma tasks:
concurrent: {
target: {
tasks: ['karma:unit', 'watch']
}
}
Then run the concurrent task from your dev task:
grunt.registerTask('dev', [
'connect',
'jshint',
'less:dev',
'concurrent:target'
]);
Problem
Currently I have following Gruntfile configuration with two separate tasks and it works perfect: ``` grunt.registerTask('server', [ 'connect', 'jshint', 'less:dev', 'watch' ]); grunt.registerTask('test', [ 'karma:unit' ]); ``` I'd like to make one task that cover both things and log into one terminal window. Something like: ``` grunt.registerTask('dev', [ 'connect', 'jshint', 'less:dev', 'karma:unit', 'watch' ]); ``` The problem is that karma and watch can't work together. I've tried to put `karma:unit:run` to `watch` config and it works, but loads karma config on every file change. And this thing I don't like: ``` Running "karma:unit:run" (karma) task [2014-05-25 01:40:24.466] [DEBUG] config - Loading config /Users/.../test/karma.config.js PhantomJS 1.9.7 (Mac OS X): Executed 4 of 4 SUCCESS (0.011 secs / 0.012 secs) ``` Is there any possibility to resolve this issue or better to run those tasks separately?