Javascript 与gulp并行运行多个qunit测试
我正在使用几个定制的jQuery插件进行一个项目,每个插件都有自己的QUnit测试和自己的html装置,因此我的Javascript 与gulp并行运行多个qunit测试,javascript,gulp,qunit,Javascript,Gulp,Qunit,我正在使用几个定制的jQuery插件进行一个项目,每个插件都有自己的QUnit测试和自己的html装置,因此我的gulp QUnit任务如下: gulp.task('qunit', () => { let path = './assets/test/components/**/*.html'; return gulp.src(path) .pipe(qunit()); }) 然而,通过这种方式,测试是按顺序运行的,整个测试套件占用了我整个构建过程的80%以
gulp QUnit
任务如下:
gulp.task('qunit', () => {
let path = './assets/test/components/**/*.html';
return gulp.src(path)
.pipe(qunit());
})
然而,通过这种方式,测试是按顺序运行的,整个测试套件占用了我整个构建过程的80%以上,我最近从grunt迁移到gulp,以便能够并行化一些任务
有没有办法并行运行QUnit测试,因为它们彼此不依赖?您需要为每个
.html
文件创建一个流
这意味着您必须将glob解析为一个文件数组,将每个文件映射到自己的流中,然后将所有流合并到一个流中:
var gulp = require('gulp');
var qunit = require('gulp-qunit');
var glob = require('glob');
var merge = require('merge-stream');
gulp.task('qunit-parallel', () => {
var files = glob.sync('./assets/test/components/**/*.html');
return merge(files.map(function(file) {
return gulp.src(file).pipe(qunit());
}));
})
我用100个.html
文件尝试了这一点,它确实快得多:
[11:09:40] Finished 'qunit-sequential' after 22 s
[11:09:58] Finished 'qunit-parallel' after 2.92 s
你使用什么
gulp
版本?我使用的是gulp v3.9.1,它使时间从1.47分钟
变为17秒
,所以这绝对是我想要的:由于超时,我有一些随机出现的故障,但我认为这超出了问题的范围,所以谢谢!