2016-03-21 12 views
1

Ich weiß, dass Karma verfügt über eine integrierte in autoWatch Option, die meine Tests verursachen wird erneut ausgeführt werden, wenn eine Testdatei Änderungen:manuell Trigger Karma Tests erneut ausführen

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

Gibt es eine Möglichkeit, diese Wiederholung manuell auslösen ? Ich hätte gerne mehr Kontrolle darüber, wann meine Tests wiederholt werden.

Antwort

0

lernte ich ein bisschen mehr über Karma und entdecken karma.runner.run(), die einen bereits laufenden Server (zum Beispiel ein Karma Server, den Sie in einem anderen Befehlsfenster gestartet) löst seine Tests erneut ausführen . In meinem Zug Aufgabe mache ich jetzt so etwas wie dieses:

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

Beachten Sie, wenn Sie diese Aufgabe aus dem gleichen Prozess ausgeführt, dass Ihr Karma Server erzeugt hat, werden Sie doppelte Testergebnisse, da sowohl der Server und der Läufer sehen Melden Sie ihre Ergebnisse in der Befehlszeile. Um nur einen Satz von Testergebnissen anzuzeigen, können Sie Ihren Karma-Server in einem Hintergrundprozess mit something like this starten.

0

Wenn Sie es manuell mit schlingen laufen, macht nur eine Aufgabe von ihm (Ich gehe davon aus, dass Sie zu wollen, erneut ausführen server.start):

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

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

Und dann, wenn Sie Test ausführen müssen , in der Kommandozeile ausführen:

gulp runTests 
+0

Ich denke, das wird entweder den Karma-Server neu starten oder einen zweiten Karma-Server zum Laufen bringen. Ich suche nach einer Möglichkeit, den bestehenden Karma-Server dazu zu bringen, seine Quelldateien neu zu laden und die Tests erneut auszuführen - ähnlich wie "autoWatch: true" - nur manuell. –

+0

Gibt es in Karma einen Befehl, nur Tests zu starten? – Prototype

Verwandte Themen