Gruntjs 让karma服务器在grunt watch启动
在开发过程中,我使用karma和grunt监视文件更改并运行测试 在命令行中,我希望能够简单地输入Gruntjs 让karma服务器在grunt watch启动,gruntjs,karma-runner,grunt-contrib-watch,Gruntjs,Karma Runner,Grunt Contrib Watch,在开发过程中,我使用karma和grunt监视文件更改并运行测试 在命令行中,我希望能够简单地输入 $ grunt watch 让karma服务器启动一次,然后让grunt监视更改,并在文件更改时运行各种任务(包括karma测试)。我不想输入$karma start 如何实现这一点?选项1 可以使用grunt contrib watch的atBegin选项。其想法是引入一个启动任务,该任务将在watcher启动时运行: watch: { startup: { files
$ grunt watch
让karma服务器启动一次,然后让grunt监视更改,并在文件更改时运行各种任务(包括karma测试)。我不想输入$karma start
如何实现这一点?选项1
可以使用grunt contrib watch
的atBegin
选项。其想法是引入一个启动任务,该任务将在watcher启动时运行:
watch: {
startup: {
files: [], // This is redundant, but we get an error if not specifying files.
tasks: [ 'karma:continuous:start' ],
options: {
atBegin: true,
spawn: false
}
},
...
}
完整的grunfile.js
:
module.exports = function(grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
karma: {
options: {
files: [ 'client/**/*.spec.js' ],
frameworks: [ 'jasmine' ],
reporters: [ 'progress' ],
browsers: [ 'PhantomJS' ],
singleRun: true,
autoWatch: false
},
continuous: {
singleRun: false,
background: true
}
},
concat: { ... },
uglify: { ... },
watch: {
startup: {
files: [], // This is redundant, but we get an error if not specifying files.
tasks: [ 'karma:continuous:start' ],
options: {
atBegin: true,
spawn: false
}
},
js: {
files: [ '<%= concat.js.src %>' ],
tasks: [ 'concat:js', 'uglify' ]
},
karma: {
files: [ '<%= concat.js.src %>', 'src/**/test/**/*.js' ],
tasks: [ 'karma:continuous:run' ]
},
}
});
require('load-grunt-tasks')(grunt);
grunt.registerTask( 'default', [ 'concat', 'uglify', 'karma:unit:run' ] );
};
module.exports = function(grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
karma: {
options: {
configFile: 'karma.conf.js'
},
unit: {
singleRun: true
},
continuous: {
// keep karma running in the background
background: true
}
},
concat: { ... },
uglify: { ... },
watch: {
js: {
files: [ '<%= concat.js.src %>' ],
tasks: [ 'concat:js', 'uglify' ]
},
karma: {
files: [ '<%= concat.js.src %>', 'src/**/test/**/*.js' ],
tasks: [ 'karma:continuous:run' ]
},
}
});
require('load-grunt-tasks')(grunt);
grunt.registerTask( 'default', [ 'concat', 'uglify', 'karma:unit:run' ] );
grunt.registerTask( 'serve', [ 'karma:continuous:start', 'watch' ] );
};
一个创建另一个启动karma服务器的任务:
grunt.registerTask( 'serve', [ 'karma:continuous:start', 'watch' ] );
然后打电话:
$ grunt serve
完整的grunfile.js
:
module.exports = function(grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
karma: {
options: {
files: [ 'client/**/*.spec.js' ],
frameworks: [ 'jasmine' ],
reporters: [ 'progress' ],
browsers: [ 'PhantomJS' ],
singleRun: true,
autoWatch: false
},
continuous: {
singleRun: false,
background: true
}
},
concat: { ... },
uglify: { ... },
watch: {
startup: {
files: [], // This is redundant, but we get an error if not specifying files.
tasks: [ 'karma:continuous:start' ],
options: {
atBegin: true,
spawn: false
}
},
js: {
files: [ '<%= concat.js.src %>' ],
tasks: [ 'concat:js', 'uglify' ]
},
karma: {
files: [ '<%= concat.js.src %>', 'src/**/test/**/*.js' ],
tasks: [ 'karma:continuous:run' ]
},
}
});
require('load-grunt-tasks')(grunt);
grunt.registerTask( 'default', [ 'concat', 'uglify', 'karma:unit:run' ] );
};
module.exports = function(grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
karma: {
options: {
configFile: 'karma.conf.js'
},
unit: {
singleRun: true
},
continuous: {
// keep karma running in the background
background: true
}
},
concat: { ... },
uglify: { ... },
watch: {
js: {
files: [ '<%= concat.js.src %>' ],
tasks: [ 'concat:js', 'uglify' ]
},
karma: {
files: [ '<%= concat.js.src %>', 'src/**/test/**/*.js' ],
tasks: [ 'karma:continuous:run' ]
},
}
});
require('load-grunt-tasks')(grunt);
grunt.registerTask( 'default', [ 'concat', 'uglify', 'karma:unit:run' ] );
grunt.registerTask( 'serve', [ 'karma:continuous:start', 'watch' ] );
};
module.exports=函数(grunt){
grunt.initConfig({
pkg:grunt.file.readJSON('package.json'),
业力:{
选项:{
configFile:'karma.conf.js'
},
单位:{
singleRun:对
},
连续的:{
//让业力在后台运行
背景:对
}
},
concat:{…},
丑:{…},
手表:{
js:{
文件:[''],
任务:['concat:js','uglify']
},
业力:{
文件:['',src/**/test/***.js'],
任务:['业力:持续:运行']
},
}
});
要求('load-grunt-tasks')(grunt);
registerTask('default',['concat','uglify','karma:unit:run']);
grunt.registerTask('serve',['karma:continuous:start','watch']);
};
我应该避免像“谢谢”这样的评论,但是。。。谢谢