Einige Fragen:
Karma ist ein Browser-Testläufer.
Die Idee ist, dass Browser von Haus aus nicht das Konzept haben, Testdateien zu laden, auszuführen und Ergebnisse zu melden. Was Karma tut, ist (ungefähr):
Betrachten Sie jeden Teil:
(1) Diese Dateien sind Ihre eigentlichen js-Dateien. Sie werden Karma sagen, wie es geladen werden soll. Wenn Sie requirejs verwenden, gibt es ein Karma-Plugin und es wird eine Konfiguration benötigt.
(2) Diese Tests können in verschiedenen Javascript-Testframeworks (Jasmine, QUnit, Mocha) geschrieben werden. Dies ist JS-Code, der im Browser ausgeführt wird.
(3) Die benutzerdefinierte Webseite ist für jedes Testframework etwas anders. Aus diesem Grund hat Karma Plugins für verschiedene Frameworks.
(4) Karma kann die Seite in vielen Browsern (FF, Chrome oder Headless-Browsern wie PhantomJs) starten.
(5) Die Berichterstattung an Karma ist wiederum rahmenabhängig und wird mit Karma-Plugins behandelt.
So beantworten Sie Ihre Fragen:
Ein kürzerer Weg, um den Unterschied zu verstehen:
Personen, die mit normalem Jasmine/Mocha testen, führen höchstwahrscheinlich den gesamten Code mit der virtuellen Maschine Node aus.
Durch Hinzufügen von Karma zum Mix (zusätzlich zu dem vorhandenen Framework Ihrer Wahl) wird Ihre Testsuite mit der Engine anderer Browser ausgeführt.
Auf diese Weise erhalten Sie die kleinen Extras, die Sie mit einer Browser-Umgebung erhalten. Es wird einfacher sein, DOM-bezogenen Code zu testen, aber Sie werden auch auf die zusätzlichen Ressourcen verzichten, die von der Node engine (wie Dateisystem-/Shell-Zugriff) bereitgestellt werden.
Die These des Mannes, der Karma entwarf, war sehr informativ, indem er bestehende Lösungen beschrieb und sie verglich und natürlich Karma selbst beschrieb
https://github.com/karma-runner/karma/blob/master/thesis.pdf
Zusammenfassung: Karma ist ein Testläufer. Es kann von QUnit, Jasmine, Mocha, ... verwendet werden. Karma hat gegenüber anderen Testläufern Vorteile, um Ihren TDD/BDD-Entwicklungszyklus zu verbessern. Es "überwacht" Dateien. Wenn Sie also eine Änderung speichern, führt Karma sofort Tests aus und meldet sich zurück, ohne den Kontext zum Ausführen des Tests in den Webbrowser zu wechseln.
Kurz gesagt, sollte die Frage vielleicht Karma UND Jasmin oder Mokka oder QUnit sein?