Uçtan uca testlerim için Açıölçer veya Karma kullanmalı mıyım? [kapalı]


124

Uçtan uca testlerim için Açıölçer veya Karma kullanmalı mıyım?

Angular-seed, E2E için Açıölçer / Selenium WebDriver kullanıyor ancak açısal fonecat öğreticisi karma kullanıyor.

Birim testleri için Karma ve E2E için Açıölçer kullanmam gerektiğini okudum, bu iyi görünüyor ama burada diğer geliştiricilerin fikirlerini almak için soracağımı düşündüm.


1
Yazılım önerileri için daha uygun . Yine de, bu soruyu oraya gönderirseniz, gereksinimlerinizin ne olduğunu ayrıntılı olarak belirtmeniz gerekecektir. İlgili meta
Profesör Allman

5
Karma ve Açıölçer Angular ekibi tarafından hem kullanılır hem de tavsiye edilir, ancak dokümantasyon durumu göz önüne alındığında (yani: tonlarca var ve neyin güncel olduğunu bilmek zor) hangisinin ve hangi amaçla kullanılacağını bilmek zordur. Bu iyi bir soru ve glpretre'nin cevabı benim de tam olarak aradığım şeydi.
Matt

5
Sorunun çok geniş olduğunu sanmıyorum (Açıölçer vs Karma). Burada bahsettiğimiz çerçeveler, sadece bir yazılım değil, bu yüzden soru doğru yerde.
CCC

Karma ve Açıölçerin kullanım durumları, avantajları ve sınırlamaları hakkında daha ayrıntılı tartışma için cevabımı burada görün: stackoverflow.com/a/29619467/1614973
Dmitri Zaitsev

Anladığım kadarıyla, Protractor, uygulamanızın yalnızca bir bölümünü, geri kalanı olmadan (örneğin, alay etme) test etmeye izin vermez: test kodu, uygulama ile aynı JS yorumlayıcısında bile çalışmıyor. Kaynak kodu değişiklikleri ve etkilenen testlerin otomatik olarak yeniden tetiklenmesi için dosya sistemi izleme yok. Karma bunları sağlar. <script> 'lerde test kodu + uygulama kodunu tarayıcıya gönderir, böylece aynı yorumlayıcıda çalışırlar, alay etmek mümkündür, ancak gerçek bir kullanıcı davranıyormuş gibi yerel olaylarla uçtan uca test için tasarlanmamıştır.
robert4

Yanıtlar:


179

AngularJS ekibi, açısal senaryo çalıştırıcısının yerini alacağı için Açıölçer kullanılmasını önerir:

Açısal Senaryo Çalıştırıcısı bakım modunda - Yeni bir Açısal projeye başlıyorsanız, Açıölçer kullanmayı düşünün .

AngularJs belgelerinden alıntılanmıştır .

Açısal fonecat öğretici uzun zaman önce geliştirildi (esas olarak 2011'de) ve henüz Açıölçer gibi bazı Açısal yeni özellikleri kullanmak için güncellenmedi.

DÜZENLE

In Açıölçer Dokümanlar - SSS :

Neden hem Karma hem de Açıölçer? Hangisini ne zaman kullanırım?

Karma, birim testi için harika bir araçtır ve İletki, uçtan uca veya entegrasyon testi için tasarlanmıştır. Bu, bireysel denetleyicilerinizin, direktiflerinizin ve servislerinizin mantığı için küçük testlerin Karma kullanılarak yapılması gerektiği anlamına gelir. Uygulamanızın tamamının çalışan bir örneğine sahip olduğunuz büyük testler, Protractor kullanılarak çalıştırılmalıdır. İletki, kullanıcının bakış açısından testleri çalıştırmayı amaçlamaktadır - testiniz, uygulamanızla etkileşim kuran bir insan için talimat olarak yazılabiliyorsa, Protractor ile yazılmış bir uçtan uca test olmalıdır.

İşte daha fazla bilgi içeren harika bir blog yazısı .


11
Karma SSS'den - karma-runner.github.io/0.10/intro/faq.html - Uçtan uca test yapmak için Karma'yı kullanabilir miyim? Karma, öncelikle düşük seviyeli (birim) testler için tasarlanmıştır. Bir AngularJS uygulamasıysa, Karma'yı karma-ng-senaryo eklentisiyle kullanabilirsiniz, ancak yüksek seviyeli testler için Protractor'ı öneriyoruz.
mrwaim

Birim testi ve e2e testi istiyorsam, birim testi için karma ortamını ve kullanıcı arabirimi testi veya e2e testi için iletki ayarlamam gerekir mi?
Sunil Garg

2
@SunilGarg Evet, mecbursunuz, belki başlangıç ​​uygulama yapımız size yardımcı olabilir: github.com/glepretre/angular-requirejs-ready (kullanmıyorsanız gerekli JS özelliklerini göz ardı edin)
glepretre
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.