2016-03-21 11 views
1

yeniden bir dahili autoWatch seçeneği bir test dosyası değişiklikleri zaman zaman testler tekrarlanmak zorunda neden olacağını:Manuel tetik Karma Karma'nın sahip olduğunu biliyoruz Testlerin

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

elle tekrarını tetiklemek için bir yolu var mı ? Testlerim tekrar başladığında daha fazla kontrol sahibi olmak isterim.

cevap

0

Ben Karma hakkında biraz daha öğrendim ve (örneğin, farklı bir komut penceresinde başlayan Karma sunucusu) kendi testlerini yeniden bir zaten çalışan sunucu tetikler karma.runner.run(), keşfedilen . Eğer Karma sunucu olurken aynı süreçten Bu görevi çalıştırırsanız, sunucu ve koşucu hem beri yinelenen test sonuçlarını göreceği

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

Not: Benim yudum görevi şimdi böyle bir şey yapmak Sonuçlarını komut satırına bildir. Yalnızca bir test sonuçları kümesini göstermek için, Karma sunucunuzu something like this kullanarak arka plan işlemine başlatabilirsiniz.

0

sadece bunun bir görevi yapmak, yudum üzerinden el ile çalıştırmanız gerekirse (ki istiyorum varsayalım yeniden çalıştırın server.start):

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

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

Ve sonra testi gerektiğinde komut satırında çalıştırın:

gulp runTests 
+0

Bu, Karma sunucusunu yeniden başlatır veya ikinci bir Karma sunucunun çalışmasına neden olur. Varolan Karma sunucunun kaynak dosyalarını yeniden yüklemesine ve testleri yeniden çalıştırmasına bir yol arıyorum - autoWatch: true' - ne manuel olarak - benzer. –

+0

Sadece testlere başlamak için Karma'da herhangi bir komut var mı? – Prototype