我正在开发一个包含多个定制 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
关于javascript - 使用 gulp 并行运行多个 qunit 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40738449/