Javascript 与gulp并行运行多个qunit测试

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%以

我正在使用几个定制的jQuery插件进行一个项目,每个插件都有自己的QUnit测试和自己的html装置,因此我的
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秒
,所以这绝对是我想要的:由于超时,我有一些随机出现的故障,但我认为这超出了问题的范围,所以谢谢!