Karma vs testing Framework Jasmine, Mocha, QUnit [closed]
Kilka pytań:
- Jak Karma i Framework testowy x (Jasmine, Mocha, QUnit) mają się do siebie?
- jaki jest odpowiedni framework w Java world? Zakładam, że Jasmine, Mocha, QUnit równa jUnit / TestNG. A co z karmą?
- Czy mogę uruchomić testing framework X (np. Jasmine) bez karmy?
- czy Karma jest testem jednostkowym czy testem integracyjnym / E2E? To odniesienie pokazuje jest dla testu jednostkowego, jednak to said jest dla testu e2e.
3 answers
Karma jest przeglądarką Test runner.
Chodzi o to, że przeglądarki nie mają natywnej koncepcji ładowania plików testowych, ich uruchamiania i raportowania wyników. Co Karma robi to (z grubsza):
- Uruchomienie małego serwera www do testowania plików javascript po stronie klienta (1)
- obsługuj również pliki javascript po stronie klienta wraz z testami (lub specyfikacjami, jak często się je nazywa) (2)
- serwować niestandardową stronę internetową, która będzie uruchamiać kod javascript do testów (3)
- Uruchom przeglądarkę, aby załadować tę stronę (4)
- zgłoś wyniki testu na serwerze (5)
- karma może ponownie zgłosić wyniki do plików tekstowych, konsoli, wszystkiego, co serwer CI lubi itp...
Patrząc na każdą część:
(1) Te pliki będą twoimi rzeczywistymi plikami js ; powiesz karmie, jak je załadować. Jeśli używasz requirejs, istnieje wtyczka karma, a niektóre config jest potrzebny.
(2) testy te mogą być napisane w różnych Javascript testing framework (Jasmine, QUnit, Mocha); jest to kod JS uruchamiany w przeglądarce.
(3) niestandardowa strona www będzie nieco inna dla każdego frameworka testowego ; dlatego karma ma Wtyczki dla różnych frameworków.
(4) Karma może uruchamiać stronę w wielu przeglądarkach (FF, Chrome, czy PhantomJs.)
(5) raportowanie do karmy jest, znowu, zależne od RAM i dotyczy wtyczek karmy.
Aby odpowiedzieć na twoje pytania :
- W Javie większość ludzi używa JUnit, który jest zarówno frameworkiem do pisania i uruchamiania testów, ale nie ma problemu z rozróżnieniem środowiska, w którym uruchamiane są testy, i środowiska, w którym agregowane są raporty z testów ; karma byłaby brakującym elementem pomiędzy zestawem JUnit i JUnit TestRunner
- Tak, możesz robić wszystko, co robi karma "ręcznie" - wybrać jedną ramę (jasmine, qunit, mocha) i postępować zgodnie z instrukcjami. Zaletą karmy jest to, że dostarcza ona rozwiązanie gotowe do użycia, jeśli masz standardową konfigurację. Karma może być używana zarówno do testów jednostkowych (z jasmine / qunit / whatever), jak i testów integracyjnych (które będą używać innego API, takiego jak webdriver, do napędzania przeglądarki)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-05 10:20:28
Jeden krótszy sposób na zrozumienie różnicy:
Ludzie testujący z Plain Jasmine / Mocha najprawdopodobniej uruchamiają cały kod z maszyną wirtualną węzła.
Dodanie karmy do miksu (oprócz wybranego frameworka) spowoduje uruchomienie pakietu testowego z silnikiem innych przeglądarek.
W ten sposób otrzymujesz małe dodatki, które dostajesz w środowisku przeglądarki. Łatwiej będzie przetestować kod związany z DOM, ale zrezygnujesz również z dodatkowego resources given by the node engine (like filesystem / shell access)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-17 07:48:02
Teza człowieka, który zaprojektował karmę, była bardzo pouczająca w opisywaniu istniejących rozwiązań i porównywaniu ich oraz oczywiście opisywaniu 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 dla innych biegaczy testowych, aby poprawić swój cykl rozwoju TDD/BDD. "Ogląda" pliki, więc po zapisaniu zmiany, Karma uruchamia testy i raporty natychmiast, bez przełączania kontekstu na przeglądarkę internetową, aby uruchomić test.
W skrócie, może pytanie powinno być Karma i Jasmine lub Mocha lub QUnit?
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-13 22:31:38