2016-11-22 39 views
1

我正在與一些定製的jQuery插件的一個項目,每個人都有其自己的HTML燈具自身的QUnit的測試,所以我gulp-qunit任務是由這樣的:運行多個qunit測試與一飲而盡

gulp.task('qunit',() => { 
    let path = './assets/test/components/**/*.html'; 
    return gulp.src(path) 
     .pipe(qunit()); 
}) 

但是,這種方式的測試順序運行,整個測試套件佔我整個構建過程的80%以上,我最近從grunt遷移到吞吐量以便能夠並行化一些任務。

有沒有辦法同時運行QUnit測試,因爲它們不相互依賴?

+0

你使用什麼'gulp'版本? –

+0

我正在使用gulp v3.9.1 – Raibaz

回答

1

您需要爲每個.html文件創建一個流。

這意味着你必須解決您的水珠,以文件的數組,映射每個文件到其自己的流,則所有流合併成一個單一的一個:

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 
+0

這使得它從1.47分鐘到17秒,所以這絕對是我尋找的:我有一些失敗,由於一些超時出現失敗,但我認爲這是外面的問題的範圍,所以謝謝! – Raibaz