Karma vs. Testframework Jasmine, Mocha, QUnit [closed]

Lesezeit: 5 Minuten

Benutzer-Avatar
Lee Chee Kiam

Ein paar Fragen:

  • Wie verhalten sich Karma und Testing Framework X (Jasmine, Mocha, QUnit) zueinander?
  • Was ist das entsprechende Framework in der Java-Welt? Ich gehe davon aus, dass Jasmine, Mocha, QUnit gleich jUnit/TestNG sind. Wie wäre es mit Karma?
  • Kann ich das Testframework X (z. B. Jasmine) ohne Karma ausführen?
  • Ist Karma für Unit-Tests oder Integrations-/e2e-Tests? Dies Hinweis zeigt ist jedoch für Unit-Tests Dies sagte ist für e2e test.

Benutzer-Avatar
phtrivier

Karma ist ein Browser-Testläufer.

Die Idee ist, dass Browser kein natives Konzept haben, Testdateien zu laden, sie auszuführen und Ergebnisse zu melden. Was Karma tut, ist (ungefähr):

  • Starten eines kleinen Webservers zum Bereitstellen von “clientseitigen” Javascript-Dateien, die getestet werden sollen (1)
  • dienen auch den “clientseitigen” Javascript-Dateien mit den Tests (oder Specs, wie sie oft genannt werden) (2)
  • Bereitstellen einer benutzerdefinierten Webseite, die Javascript-Code für die Tests ausführt (3)
  • Starten Sie einen Browser, um diese Seite zu laden (4)
  • Melden Sie die Ergebnisse des Tests an den Server (5)
  • Karma kann die Ergebnisse dann wieder an Textdateien, die Konsole, alles, was Ihr CI-Server mag, usw. melden.

Betrachtet man jedes Teil:

(1) Diese Dateien sind Ihre eigentlichen js-Dateien; Sie werden Karma sagen, wie es sie laden soll. Wenn Sie requirejs verwenden, gibt es ein Karma-Plugin, und einige Konfigurationen sind erforderlich.

(2) Diese Tests können in einer Vielzahl von Javascript-Testframeworks (Jasmine, QUnit, Mocha) geschrieben werden; Dies ist JS-Code, der im Browser ausgeführt wird.

(3) Die benutzerdefinierte Webseite wird für jedes Test-Framework etwas anders sein; 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 Framework-abhängig und wird mit Karma-Plugins behandelt.

Also um deine Fragen zu beantworten:

  • in Java verwenden die meisten Leute JUnit, das sowohl ein Framework zum Schreiben von Tests als auch zum Ausführen von Tests ist, aber nicht das Problem hat, die Umgebung zu unterscheiden, in der Tests ausgeführt werden, und diejenige, in der Testberichte aggregiert werden; Karma wäre das fehlende Stück zwischen einer JUnit Suite und einem JUnit TestRunner
  • Ja, Sie können alles, was Karma tut, “von Hand” tun – wählen Sie ein Gerüst (Jasmin, Qunit, Mokka) und folgen Sie den Anweisungen. Der Vorteil von Karma besteht darin, dass es eine sofort einsatzbereite Lösung bietet, wenn Sie sich in einem Standard-Setup befinden.
  • Karma kann sowohl für Komponententests (mit Jasmin / qunit / was auch immer) als auch für Integrationstests (die eine andere API wie Webdriver verwenden, um den Browser zu steuern) verwendet werden.

  • Das verdient einen Blogbeitrag oder so.

    – Willa

    17. November 2015 um 4:55 Uhr

  • Karma kann die Seite in vielen Browsern (FF, Chrome oder Headless-Browsern wie PhantomJs) starten. hat Jasmine Recht? Wir können es auf vielen Frameworks testen und dieses Setup in conf js auswählen

    – Wang’l Pakhrin

    27. Juli 2016 um 22:47 Uhr

  • @Wang’lPakhrin Du kannst Jasmin natürlich mit (m)jedem Browser verwenden. Was ich meinte, war, dass Karma technisch gesehen (viele) beliebige Browser starten kann, in denen Sie testen möchten. Zum Zeitpunkt des Schreibens war Jasmin nicht dafür verantwortlich, Browser tatsächlich zu starten (ich glaube immer noch nicht, dass dies der Fall ist). In der Hoffnung, dass es die Dinge klärt!

    – Phtrivier

    28. Juli 2016 um 9:48 Uhr


  • thejsguy.com/2015/01/12/jasmine-vs-mocha-chai-and-sinon.html “Jasmin gegen Mokka, Chai und Sinon”

    – entflohene Katze

    16. November 2016 um 6:22 Uhr

  • @Willa Ich habe basierend auf dieser Antwort ein YouTube-Video erstellt youtube.com/watch?v=bJc078szrZA 🙂

    – Berling

    22. September 2018 um 12:35 Uhr

Benutzer-Avatar
SystematischFrank

Ein kürzerer Weg, um den Unterschied zu verstehen:

Leute, die mit einfachem Jasmine / Mocha testen, führen höchstwahrscheinlich den gesamten Code mit der virtuellen Node-Maschine aus.

Wenn Sie Karma zum Mix hinzufügen (zusätzlich zu Ihrem bestehenden 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 Browserumgebung erhalten. Es wird einfacher, DOM-bezogenen Code zu testen, aber Sie werden auch auf die zusätzlichen Ressourcen verzichten, die von der Node-Engine bereitgestellt werden (wie Dateisystem- / Shell-Zugriff).

Benutzer-Avatar
mauricio777

Die Diplomarbeit des Typs, der Karma entworfen hat, war sehr informativ bei der Beschreibung bestehender Lösungen und deren Vergleich und natürlich bei der Beschreibung von Karma selbst

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 Vorteile gegenüber anderen Testläufern, um Ihren TDD/BDD-Entwicklungszyklus zu verbessern. Es “überwacht” Dateien, sodass Karma beim Speichern einer Änderung Tests durchführt und sofort Rückmeldung gibt, ohne dass der Kontext zum Webbrowser gewechselt werden muss, um den Test auszuführen.

Kurz gesagt, vielleicht sollte die Frage Karma UND Jasmin oder Mokka oder QUnit lauten?

  • Könntest du eine kleine Zusammenfassung, aus dem Link. Das verbessert Ihre Antwort

    – Gewinner_Joiner

    13. Dezember 2015 um 8:09 Uhr

  • Kann Karma Jest-Tests durchführen?

    – SuperUberDuper

    14. Dezember 2015 um 12:08 Uhr

  • Kannst du auch in Jasmine schauen? Ich denke schon, aber ich kann mich nicht erinnern.

    – Wang’l Pakhrin

    27. Juli 2016 um 22:48 Uhr

  • @Wang’l Pakhrin Ich weiß nicht, dass Jasmine eine Überwachungsfunktion hat, ich verwende nur nodemon. “nodemon –exec jasmine” und jedes Mal, wenn Sie eine Datei speichern, werden die Tests ausgeführt.

    – Schneefroschdev

    4. März 2017 um 13:13 Uhr

  • Die These erwähnt Jasmine nicht.

    – Carl G

    8. Juni 2017 um 20:37 Uhr

1310940cookie-checkKarma vs. Testframework Jasmine, Mocha, QUnit [closed]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy