2016-03-21 47 views
1

我知道噶有一個內置的autoWatch選項,將導致重新運行我的測試時,測試文件的更改:手動觸發噶重新運行測試

var server = new karmaServer({ 
    autoWatch: true, 
    autoWatchBatchDelay: 250, 
}); 
server.start(); 

有手動觸發這種重新運行方式?我想對我的測試重新運行時有更多的控制權。

回答

0

我學到了一些關於因果報應,發現karma.runner.run(),這將觸發一個已經運行的服務器(例如,您在不同的命令窗口中啓動噶服務器)重新運行它的測試。在我一飲而盡的任務,我現在做這樣的事情:

gulp.task('run-tests', function() { 
    gulp.watch('/glob/to/my/files').on('change', function() { 
     karma.runner.run({ configFile: 'karma.conf.js' }); 
    });  
}); 

請注意,如果您運行的是催生了您的噶服務器相同的過程這個任務,你會看到,因爲在服務器亞軍重複的測試結果將他們的結果報告給命令行。要僅顯示一組測試結果,您可以使用something like this在後臺進程中啓動Karma服務器。

0

如果你需要用一口手工運行它,只要從中任務(我假設你要重新運行server.start):

var server = new karmaServer({ 
autoWatch: true, 
autoWatchBatchDelay: 250, 
}); 

gulp.task('runTests', function() { 
server.start(); 
}); 

然後每當你需要運行測試,請在命令行:

gulp runTests 
+0

我認爲這將重新啓動Karma服務器或導致第二個Karma服務器運行。我正在尋找讓現有的Karma服務器重新加載其源文件並重新運行測試的方式 - 類似「autoWatch:true」的做法 - 只能手動執行。 –

+0

Karma中是否有任何命令只啓動測試? – Prototype