Coffeescript ve node.js. kullanarak bir (daha büyük) bir dizi birim testi yazıyorum. Kahveyi kullanarak dosyaları oluşturmak "izlemek" seçeneği (-w)Coffeescript'te sürekli yapı/birim testi nasıl yapabilirim?
coffee -w -b -c -o web/ src/
Sorunum (derleme .js için ben varsayarak) birim testleri çalışan 20 saniye sürer olmasıdır.
Mümkünse, birim testlerini otomatik olarak (derlenmiş bir .js) dosya değişikliğinde çalıştırmak istiyorum, bu da sonuçların uzun süre beklemesini engeller.
Bulunduğum Cakefile: https://github.com/adunkman/connect-assets/blob/master/Cakefile
(Ben türetilmiştir seni örnek varsayalım) sstephenson en biraz daha karmaşık:
fs = require 'fs'
{print} = require 'sys'
{spawn, exec} = require 'child_process'
build = (watch, callback) ->
if typeof watch is 'function'
callback = watch
watch = false
options = ['-c', '-b', '-o', 'web', 'src']
options.unshift '-w' if watch
coffee = spawn 'coffee', options
coffee.stdout.on 'data', (data) -> print data.toString()
coffee.stderr.on 'data', (data) -> print data.toString()
coffee.on 'exit', (status) -> callback?() if status is 0
task 'test', 'Run the test suite', ->
build ->
require.paths.unshift __dirname + "/lib"
{reporters} = require 'nodeunit'
process.chdir __dirname
reporters.default.run ['test']
Whoa — 20 saniye? Hiçbir zaman derlemek için uzun süren bir CoffeeScript projesi almadım. Veya bu konuda 2 saniye bile. Her bir ".coffee" dosyanızın derlenmesini ve derlemek için hangisinin (varsa) 1'den fazla aldığını görmeyi deneyebilir misiniz? Ardından [issue tracker] 'a bir rapor gönderin (https://github.com/jashkenas/coffee-script/issues). –
Muhtemelen derleme değil - belki de node.js yüküdür? 8 tane yüklüyorum ya da gerektiriyor. Testin kendisi yaklaşık 300 ms'de çalışıyor gibi görünüyor. –
Yani, testlerde 8'i yani 'require's yükleniyor musunuz? Birkaç milisaniyeden daha fazlasını aldığını görmek için her birini zamanlamaya çalışabilir misiniz? 'execvp(): –