Kilka pytań:
- Jak karma i ramy testowe X (Jasmine, Mocha, QUnit) odnoszą się do siebie?
- Jaka jest równoważna struktura w świecie Java? Zakładam, że Jasmine, Mocha, QUnit równa się jUnit / TestNG. Co powiesz na Karmę?
- Czy mogę uruchomić testowanie frameworka X (np. Jasmine) bez Karmy?
- Czy Karma jest testem jednostkowym, czy testem integracyjnym / e2e? To odniesienie pokazuje test jednostkowy, ale to dotyczy testu e2e.
javascript
unit-testing
integration-testing
Lee Chee Kiam
źródło
źródło
Odpowiedzi:
Karma to program uruchamiający testy przeglądarki.
Chodzi o to, że przeglądarki nie mają natywnej koncepcji ładowania plików testowych, uruchamiania ich i raportowania wyników. To, co robi karma, to (z grubsza):
Patrząc na każdą część:
(1) Te pliki będą twoimi rzeczywistymi plikami js; powiesz karmie, jak je załadować. Jeśli korzystasz z wymagań, istnieje wtyczka karmy i potrzebna jest pewna konfiguracja.
(2) Testy te można napisać w różnych ramach testów JavaScript (Jasmine, QUnit, Mocha); jest to kod JS uruchamiany w przeglądarce.
(3) Niestandardowa strona internetowa będzie nieco inna dla każdej platformy testowej; dlatego karma ma wtyczki do różnych frameworków.
(4) Karma może uruchomić stronę w wielu przeglądarkach (FF, Chrome lub przeglądarkach bezgłowych, takich jak PhantomJs).
(5) Ponowne zgłaszanie się do karmy jest zależne od ram i dotyczy wtyczek karmy.
Aby odpowiedzieć na twoje pytania:
źródło
Jeden krótszy sposób na zrozumienie różnicy:
Osoby testujące za pomocą zwykłego Jasmine / Mocha najprawdopodobniej uruchamiają cały kod na maszynie wirtualnej Node.
Dodanie Karmy do miksu (na wierzchu istniejącego wyboru) uruchomi zestaw testów z silnikiem innych przeglądarek.
W ten sposób otrzymujesz małe dodatki, które otrzymujesz dzięki środowisku przeglądarki. Łatwiej będzie przetestować kod związany z DOM, ale zrezygnujesz również z dodatkowych zasobów udostępnionych przez silnik Node (takich jak dostęp do systemu plików / powłoki)
źródło
Teza faceta, który zaprojektował Karmę, była bardzo pouczająca w opisywaniu istniejących rozwiązań i porównywaniu ich oraz oczywiście w opisie samej Karmy
https://github.com/karma-runner/karma/blob/master/thesis.pdf
Podsumowanie: Karma jest biegaczem testowym. Może być używany przez QUnit, Jasmine, Mocha, ... Karma ma zalety w stosunku do innych testerów, aby poprawić cykl rozwoju TDD / BDD. „Obserwuje” pliki, więc kiedy zapiszesz zmianę, Karma uruchamia testy i natychmiast się odsyła, bez przełączania kontekstu do przeglądarki internetowej, aby uruchomić test.
Krótko mówiąc, być może pytanie powinno brzmieć Karma ORAZ Jasmine, Mocha lub QUnit?
źródło