我目前使用以下命令
使用rewireify添加用于测试的getter和setter方法
browserify -e app/src/tests/suites.js -t reactify -t rewireify -o app/src/tests/bundle.js
然后:
karma start
每次我对代码进行更改时都必须运行此命令。任何人都可以告诉我如何在每次保存的时候在手表任务中设置这个吗?
非常感谢
编辑:
gulp-concat会是一个选项,就像这样吗?
gulp.task('test', function () {
gulp.src([
'./App/src/tests/**/*.js'
]).pipe(concat('suites.js'))
.pipe(rewireify())
.pipe(reactify())
.pipe(gulp.dest('./App/src/tests/concatBundle.js'))
.pipe(karma({
configFile: 'karma.conf.js',
action: 'run'
}))
.on('error', function(err) {
throw err;
});
});
答案 0 :(得分:0)
GulpJs只是一堆用Node编写的代码,因此您可以使用gulp文件中的任何Node代码。您可以使用child_process.spawn
运行任意命令。例如,您可以在监视任务中包含类似以下内容的内容。 Node documentation
var spawn = require('child_process').spawn,
cmd = spawn('browserify', ['-e', 'app/src/tests/suites.js', '-t', 'reactify', '-t', <... list each arg as an array item ...>] );
spawn.stdout.on('data', function (data) {
console.log('stdout: ' + data);
});
spawn.stderr.on('data', function (data) {
console.log('stderr: ' + data);
});
spawn.on('close', function (code) {
console.log('child process exited with code ' + code);
//Your command is finished here... so you could kick off another command like 'karma start'
});