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.
Author: Lee Chee Kiam, 2014-09-25

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)
 361
Author: phtrivier,
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)

 57
Author: SystematicFrank,
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?

 25
Author: mauricio777,
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