GulpJs - 将 browserify、reactify 和 rewireify 添加到 karma gulp 任务
GulpJs - add browserify, reactify and rewireify to karma gulp task
我目前使用以下命令
- 将我所有的测试脚本添加到 suite.js
- 改造我的 jsx
使用 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;
});
});
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'
});
我目前使用以下命令
- 将我所有的测试脚本添加到 suite.js
- 改造我的 jsx
使用 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;
});
});
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'
});