Node.js Birim Testi [kapalı]


164

Şu anda orada iyi bir node.js (sunucu tarafı js) birim test çerçeveleri var mı? Sağlanan Assert modülünden biraz daha derin bir şey arıyorum.

Yanıtlar:


66

Ben kullanarak sona erdi düğüm-birimi ve onunla gerçekten mutlu am.

Başlangıçta Expresso kullanıyordum ama testleri paralel olarak çalıştırması birkaç soruna neden oldu. (Örneğin, veritabanı fikstürlerinin kullanılması bu durumda iyi çalışmaz).


25
Expresso sizi paralel olarak test yapmaya zorlamaz. --Seri argümanını besleyin ve hepsini neşeli sırayla çalıştırın.
einaros

3
Sadece indirilen ve kullanılan nodeunit ... tam olarak ne diyor yok, ilk kez ftw çalıştı!
Michael Dausmann

1
Nodeunit, her testin imho'yu çağırmasını gerektiren biraz garip .done().
Kos

2
Şimdi yeni bir projeye başlayacak olsam, muhtemelen test çerçevesi olarak
Mocha'yı kullanırdım

1
Düğüm birimi, .done()eşzamansız testlere uymayı gerektirir . Bazen biraz hantal olabileceğine katılıyorum, ancak bu şekilde yapmak için güçlü bir nedeni var.
L0j1k

48

Ayrıca düğüm için iyi bir test çerçevesi arıyordum ve Mocha'yı buldum . Expresso'nun resmi halefi ve çok olgun görünüyor.

Farklı iddia kütüphanelerini ekleyebilmenizi sağlar, kod kapsamı ve diğer şeyler için muhabirler sunar (kendi eklentinizi ekleyebilirsiniz). Senkronizasyon veya zaman uyumsuzluğu çalıştırabilir ve özlü bir API'sı vardır.

Bir deneyeceğim ve rapor vereceğim ...

DÜZENLE:

Diğer projelere adanmış inanılmaz bir süre sonra nihayet bir Javascript projesine geri döndüm ve mocha ile oynamak için zamanım oldu. Ciddi kullanmanızı tavsiye ederim. Testler çok güzel okundu, yudumla entegrasyon harika ve testler çok hızlı yapıldı. Yaklaşık yarım gün içinde otomatik bağımsız ve aynı zamanda tarayıcı içi (browserify) test çalışmalarını ve karşılık gelen kod kapsamı raporlarını ayarlayabildim (çoğu zaman gulp'den browserify'ın nasıl kullanılacağını anlamaya harcanıyor). Bana göre, mocha bir test çerçevesi için çok iyi bir seçim gibi görünüyor.

GÜNCELLEME:

Mocha konusunda hala çok ikna oldum. Chai ile entegrasyon, farklı iddia biçimlerinin eklentisine izin verir. Bu github projesinde çalışan bir kurulumu kontrol edebilirsiniz . Şimdi karma ile kullanıyorum, kod kapsama raporunu, otomatik izleyicileri ve IntelliJ ile iyi entegrasyonu entegre ediyorum


Github proje bağlantısı koptu. Yenileyebilir misiniz, lütfen?
karlisup


15

Şahsen sadece assert modülünü kullandım, ama kendimi daha fazlasını isterken buldum. Birçok düğüm modülüne baktım ve popüler birim test çerçeveleri düğüm birimi ve (Expresso ile aynı adam tarafından yapılmış olabilir (belki güncellenmiş bir isim?)

Yeminler de umut verici görünüyor.


15
Seni sadece bu kelime için onaylıyorum.
ThomasReggi

15

Şahsen Expresso ile takılı kaldım , ancak çoğu test stilini barındıran bir dizi farklı çerçeve var.

Joyent'in kapsamlı bir listesi var ; bir şans ver.


1
Expresso benim için mantıklı olan ve asenkron kod ile düzgün çalışan tek kişi. Yemin ve qunit de denedi.
balupton

5

yemin node.js için sağlam bir birim sınama kitaplığıdır ancak sözdizimi sıkıcıdır.

Yemin akıcı adlı API'yı zincirlenebilir hale getiren ince bir soyutlama yazdım.

Ve yemin akıcılığı üzerine kurulu ve bir BDD tarzı sözdizimi ortaya koyan başka bir soyutlama [vows-is] yazdım.

Bir örnek

var is = require("vows-is");

is.suite("testing is fun").batch()

    .context("is testing fun?")
        .topic.is("yes")
        .vow.it.should.equal("yes")

.suite().run({
    reporter: is.reporter
});

Daha fazla örnek


6
amen, sözleri sözdizimi korkunç IMO
Donn Felker

Huzursuz sarıcı ile yemin etti. Bir json api test etmek için iyi bir fikir gibi görünüyordu ama hızla kısa oldu. Ayrıca, bu tür zincirleme çağrılara yoğun bir şekilde yönlendirilmiş olan apilerin kullanımı zor ve hata ayıklaması zor olduğunu düşünüyorum. Örneklerde iyi görünüyorlar, ancak gerçek dünya kullanımı altında iyi çalışmıyorlar.
drekka

@drekka yeminleri ve yeminleri korkunçtur. mocha kullan
Raynos

Şimdi deniyor, ancak benzer bir grup sorunla karşılaşıyor gibi görünüyor.
drekka

o zaman yanlış kullanıyor olmalısın. gist.github.com/2896455 adresini okumayı deneyin . @drekka
Raynos



0

Başlangıçta node.js için yapılmış, deadunit node.js ve tarayıcı için bir javascript birim test kütüphanesidir. Benzersiz özelliklerinden bazıları:

  • Kolay öğrenme eğrisi
  • Test sonuçlarını komut satırında (renkli veya düz metin) veya html olarak çıktı alabilir
  • İddialarınızın olduğu gerçek kod satırlarını yazdırır, böylece test yorumu yazmak için çok zaman harcamasanız bile çıktınız mantıklıdır
  • countBeklenen istisnalar ve eşzamansız varsayımlarla uğraşmayı kolaylaştıran basit bir iddia vardır
  • istisna ve sahip oldukları tüm verileri yazdırır
  • kodunuzun asılı olup olmadığını size bildirir (istemediğiniz bir şeydir, ancak genellikle fark edilmez)
  • Olay güdümlü bir API, test sonuçlarının bir ağ üzerinden veya istediğiniz şekilde aktarılmasını sağlar.
  • Düğüm lifleri ile testi destekler

0

Az önce karma ve Jasmine: narma ile test düğümlerini birime yüklemek için kullandığım bir projeyi yükledim . Düğüm modülleriniz bir düğüm ağı kitine yüklenir, böylece düğüm modüllerini yürütebilir ve aynı yığın içinde jquery gibi kitaplıkları kullanabilirsiniz.


0

test-studio , birim testi için güçlü, web tabanlı bir ön uç sağlayan bir npm paketidir. Bireysel veya test gruplarının yürütülmesi ve düğüm denetçisinin bireysel testlere adım atması gibi şeyleri destekler. Şu anda mocha'yı destekliyor ve gelecekteki taleplerde daha fazla çerçeve desteklenecek.

Bununla ilgili daha fazla bilgiyi buradan edinebilirsiniz .

Feragatname: Ben yazarım.


1
bunun sizin tarafınızdan yazıldığı anlaşılıyor, değil mi? öyleyse, cevabınızda bu gerçeği açıklamalısınız.
2015'te Strugee
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.