Karma ist ein JavaScript-Testläufer, der mit Node.js erstellt wurde und für Unit-Tests gedacht ist.
Der Winkelmesser ist für End-to-End-Tests vorgesehen und verwendet Selenium Web Driver, um Tests durchzuführen.
Beide wurden vom Angular-Team hergestellt. Sie können jede beliebige Assertionsbibliothek verwenden.
Screencast: Karma Erste Schritte
Verwandte :
Profis :
- Verwendet node.js, also kompatibel mit Win / OS X / Linux
- Führen Sie Tests über einen Browser oder ohne Kopf mit PhantomJS aus
- Auf mehreren Clients gleichzeitig ausführen
- Option zum Starten, Erfassen und automatischen Herunterfahren von Browsern
- Option zum Ausführen von Servern / Clients auf einem Entwicklungscomputer oder separat
- Führen Sie Tests über eine Befehlszeile aus (kann in ant / maven integriert werden)
- Schreiben Sie Tests im xUnit- oder BDD-Stil
- Unterstützt mehrere JavaScript-Testframeworks
- Tests beim Speichern automatisch ausführen
- Proxies fordern domänenübergreifende Anfragen an
- Mögliche Anpassung:
- Erweitern Sie es, um andere Test-Frameworks zu verpacken (Jasmine, Mocha, QUnit integriert)
- Ihre eigenen Behauptungen / Widerlegungen
- Reporter
- Browser-Starter
- Plugin für WebStorm
- Unterstützt von Netbeans IDE
Nachteile :
Ich bin völlig unqualifiziert, die Funktionen, Stärken und Schwächen von mocha.js zu kommentieren, aber es wurde mir nur von jemandem empfohlen, dem ich in der JS-Community vertraue.
Liste der von der Website gemeldeten Funktionen:
- Browser-Unterstützung
- einfache asynchrone Unterstützung, einschließlich Versprechen
- Testberichterstattung
- String Diff Unterstützung
- Javascript # API zum Ausführen von Tests
- ordnungsgemäßer Exit-Status für CI-Unterstützung usw.
- Erkennt und deaktiviert das Färben für Nicht-Ttys automatisch
- ordnet nicht erfasste Ausnahmen dem richtigen Testfall zu
- Unterstützung für asynchrone Test-Timeouts
- testspezifische Zeitüberschreitungen
- Unterstützung für Knurrbenachrichtigungen
- meldet Testdauer
- hebt langsame Tests hervor
- Unterstützung für Datei-Watcher
- globale variable Lecksuche
- Führen Sie optional Tests aus, die einem regulären Ausdruck entsprechen
- Auto-Exit, um ein "Hängen" mit einer aktiven Schleife zu verhindern
- Einfache Meta-Generierung von Suiten und Testfällen
- Unterstützung für mocha.opts-Dateien
- anklickbare Suite-Titel zum Filtern der Testausführung
- Unterstützung für Node-Debugger
- erkennt mehrere Aufrufe von done ()
- Verwenden Sie eine beliebige Assertionsbibliothek
- Erweiterbare Berichterstattung, gebündelt mit mehr als 9 Reportern
- erweiterbare Test-DSLs oder "Schnittstellen"
- vor, nach, vor jedem, nach jedem Haken
- Beliebige Transpiler-Unterstützung (Kaffee-Skript usw.)
- TextMate-Bundle
Dies ist nicht mehr vorhanden und leitet stattdessen zu sequential.js weiter
Yolpo ist ein Tool zur Visualisierung der Ausführung von Javascript. Javascript-API-Entwickler werden aufgefordert, ihre Anwendungsfälle zu schreiben, um ihre API anzuzeigen und mitzuteilen. Solche Anwendungsfälle bilden die Grundlage für Regressionstests.
Futuristischer Testläufer mit integrierter Unterstützung für ES2015. Obwohl JavaScript Single-Threaded ist, kann IO in Node.js aufgrund seiner asynchronen Natur parallel erfolgen. AVA nutzt dies und führt Ihre Tests gleichzeitig aus, was besonders für schwere E / A-Tests von Vorteil ist. Darüber hinaus werden Testdateien parallel als separate Prozesse ausgeführt, wodurch Sie eine noch bessere Leistung und eine isolierte Umgebung für jede Testdatei erhalten.
- Minimal und schnell
- Einfache Testsyntax
- Führt gleichzeitig Tests aus
- Erzwingt das Schreiben von Atomtests
- Keine impliziten Globalen
- Isolierte Umgebung für jede Testdatei
- Schreiben Sie Ihre Tests in ES2015
- Versprechen Sie Unterstützung
- Unterstützung der Generatorfunktion
- Unterstützung für asynchrone Funktionen
- Beobachtbare Unterstützung
- Erweiterte Asserts
- Optionale TAP-Ausgabe
- Stapelspuren reinigen
Ein mit Node.js erstellter JavaScript-Testläufer. Sehr modular und flexibel. Es wird mit einer eigenen Assertionsbibliothek geliefert, aber Sie können Ihre eigene hinzufügen, wenn Sie möchten. Die Assertionsbibliothek ist entkoppelt, sodass Sie sie auch mit anderen Testläufern verwenden können. Anstatt assert(!...)
oder zu verwenden expect(...).not...
, verwendet es, refute(...)
was eine schöne Wendung imho ist.
Ein Browser-JavaScript-Test-Toolkit. Es führt Browsertests mit Browser-Automatisierung (denken Sie an JsTestDriver), statische HTML-Seitentests im QUnit-Stil, Tests in kopflosen Browsern (PhantomJS, jsdom, ...) und mehr durch. Schauen Sie sich die Übersicht an !
Ein Node.js-Test-Toolkit. Sie erhalten dieselbe Testfallbibliothek, Assertionsbibliothek usw. Dies eignet sich auch hervorragend für Hybridbrowser und Node.js-Code. Schreiben Sie Ihren Testfall mit Buster.JS und führen Sie ihn sowohl in Node.js als auch in einem echten Browser aus.
Screencast: Buster.js Erste Schritte (2:45)
Profis :
- Verwendet node.js, also kompatibel mit Win / OS X / Linux
- Führen Sie Tests über einen Browser oder ohne Kopf mit PhantomJS durch (bald)
- Auf mehreren Clients gleichzeitig ausführen
- Unterstützt NodeJS-Tests
- Server / Clients müssen nicht auf dem Entwicklungscomputer ausgeführt werden (IE ist nicht erforderlich)
- Führen Sie Tests über eine Befehlszeile aus (kann in ant / maven integriert werden)
- Schreiben Sie Tests im xUnit- oder BDD-Stil
- Unterstützt mehrere JavaScript-Testframeworks
- Verschieben Sie Tests, anstatt sie zu kommentieren
- SinonJS eingebaut
- Tests beim Speichern automatisch ausführen
- Proxies fordern domänenübergreifende Anfragen an
- Mögliche Anpassung:
- Erweitern Sie es, um andere Test-Frameworks zu verpacken (JsTestDriver integriert)
- Ihre eigenen Behauptungen / Widerlegungen
- Reporter (xUnit XML, traditionelle Punkte, Spezifikation, Tap, TeamCity und mehr integrierte Funktionen)
- Passen Sie den HTML-Code an, mit dem die Browsertests ausgeführt werden
- Integration von TextMate und Emacs
Nachteile :
- Stil in der Beta kann also fehlerhaft sein
- Noch kein Plugin für Eclipse / IntelliJ)
- Gruppiert Ergebnisse nicht nach Betriebssystem / Browser / Version wie TestSwarm *. Der Browsername und die Version werden jedoch in den Testergebnissen ausgedruckt.
- Keine Historie früherer Testergebnisse wie TestSwarm *
- Funktioniert unter Windows ab Mai 2014 nicht vollständig
* TestSwarm ist auch ein Continuous Integration-Server, während Sie für Buster.js einen separaten CI-Server benötigen. Es werden jedoch xUnit-XML-Berichte ausgegeben, sodass die Integration in Hudson- , Bamboo- oder andere CI-Server einfach sein sollte .
https://github.com/jquery/testswarm
TestSwarm befindet sich offiziell nicht mehr in der aktiven Entwicklung, wie auf der GitHub-Webseite angegeben. Sie empfehlen Karma, Browserstack-Runner oder Intern.
Dies ist ein verhaltensgesteuertes Framework (wie im folgenden Zitat angegeben), das Entwickler interessieren könnte, die mit Ruby oder Ruby on Rails vertraut sind. Die Syntax basiert auf RSpec , die zum Testen in Rails-Projekten verwendet werden.
Jasmine-Spezifikationen können von einer HTML-Seite (in qUnit-Manier) oder von einem Testläufer (als Karma) ausgeführt werden.
Jasmine ist ein verhaltensgesteuertes Entwicklungsframework zum Testen Ihres JavaScript-Codes. Es hängt nicht von anderen JavaScript-Frameworks ab. Es ist kein DOM erforderlich.
Wenn Sie Erfahrung mit diesem Test-Framework haben, tragen Sie bitte mit weiteren Informationen bei :)
Projekthaus: http://jasmine.github.io/
QUnit konzentriert sich darauf, JavaScript im Browser zu testen und dem Entwickler so viel Komfort wie möglich zu bieten. Klappentext von der Website:
QUnit ist eine leistungsstarke, benutzerfreundliche JavaScript-Unit-Test-Suite. Es wird von den Projekten jQuery, jQuery UI und jQuery Mobile verwendet und kann jeden generischen JavaScript-Code testen
QUnit teilt einige Geschichte mit TestSwarm (oben):
QUnit wurde ursprünglich von John Resig als Teil von jQuery entwickelt. Im Jahr 2008 erhielt es eine eigene Haus-, Namens- und API-Dokumentation, die es anderen ermöglichte, sie auch für Unit-Tests zu verwenden. Zu der Zeit hing es noch von jQuery ab. Eine Neufassung im Jahr 2009 hat behoben, dass QUnit jetzt vollständig eigenständig ausgeführt wird. Die Assertionsmethoden von QUnit folgen der CommonJS Unit Testing-Spezifikation, die zu einem gewissen Grad von QUnit beeinflusst wurde.
Projekthaus: http://qunitjs.com/
Ein weiteres großartiges Tool ist sinon.js von Christian Johansen, dem Autor von Test-Driven JavaScript Development . Am besten von sich selbst beschrieben:
Standalone-Testspione, Stubs und Mocks für JavaScript. Keine Abhängigkeiten funktionieren mit einem Unit-Test-Framework.
Die Intern-Website bietet einen direkten Funktionsvergleich mit den anderen Testframeworks in dieser Liste. Es bietet mehr Funktionen als jedes andere JavaScript-basierte Testsystem.
Ein neues, aber sehr leistungsfähiges Test-Framework. Es ermöglicht auch Snapshot-basierte Tests. Dies erhöht die Testgeschwindigkeit und erzeugt eine neue Dynamik beim Testen
Schauen Sie sich einen ihrer Vorträge an: https://www.youtube.com/watch?v=cAKYQpTC7MA
Besser noch: Erste Schritte
Werfen Sie einen Blick auf das DOJ-Unit-Test-Framework (Dojo Object Harness), das für JavaScript-Unit-Tests weitgehend rahmenunabhängig ist und keine Dojo-Abhängigkeiten aufweist. Eine ausführliche Beschreibung finden Sie unter Testen von Web 2.0-Anwendungen mit dem Dojo Objective Harness .
Wenn Sie die UI-Tests automatisieren möchten (ein wunder Punkt vieler Entwickler), lesen Sie doh.robot (vorübergehend heruntergefahren. Update: anderer Link http://dojotoolkit.org/reference-guide/util/dohrobot.html ) und dijit .robotx (vorübergehend ausgefallen ) . Letzteres ist für eine Abnahmeprüfung vorgesehen. Aktualisieren:
In Artikeln, auf die verwiesen wird, wird erläutert, wie Sie sie verwenden, wie Sie einen Benutzer emulieren, der mit Ihrer Benutzeroberfläche über Maus und / oder Tastatur interagiert, und wie Sie eine Testsitzung aufzeichnen, damit Sie sie später automatisch "abspielen" können.
quelle
Chutzpah - Ein JavaScript-Testläufer
Ich habe ein Open-Source-Projekt namens Chutzpah erstellt, das ein Testläufer für JavaScript-Unit-Tests ist. Mit Chutzpah können Sie JavaScript-Komponententests über die Befehlszeile und innerhalb von Visual Studio ausführen. Es unterstützt auch die Ausführung auf dem TeamCity Continuous Integration Server.
quelle
Der JavaScript-Abschnitt des Wikipedia-Eintrags " Liste der Unit Testing Frameworks" enthält eine Liste der verfügbaren Optionen. Es gibt an, ob sie clientseitig, serverseitig oder beides arbeiten.
quelle
BusterJS
Es gibt auch BusterJS von Christian Johansen, dem Autor von Test Driven Javascript Development und dem Sinon Framework. Von der Website:
quelle
google-js-test:
Von Google veröffentlichtes JavaScript-Testframework: https://github.com/google/gjstest
Derzeit gibt es keine Binärdateien für Windows
quelle
Wir verwenden Qunit jetzt zusammen mit Pavlov und JSTestDriver. Dieser Ansatz funktioniert gut für uns.
QUnit
Pawlow , Quelle
jsTestDriver , Quelle
quelle
Sie haben als Profi "läuft auf aktuellem Browser", aber meiner Erfahrung nach ist das ein Nachteil, weil es langsam ist. Was es jedoch wertvoll macht, ist das Fehlen einer ausreichenden JS-Emulation durch die Nicht-Browser-Alternativen. Es kann sein, dass, wenn Ihr JS komplex genug ist, nur ein Test im Browser ausreicht, aber es gibt noch ein paar weitere Optionen, die Sie berücksichtigen sollten:
HtmlUnit : "Es hat eine ziemlich gute JavaScript-Unterstützung (die sich ständig verbessert) und kann auch mit recht komplexen AJAX-Bibliotheken arbeiten, wobei je nach gewünschter Konfiguration entweder Firefox oder Internet Explorer simuliert wird." Wenn die Emulation für Ihre Verwendung gut genug ist, ist sie viel schneller als das Fahren eines Browsers.
Aber vielleicht hat HtmlUnit genug JS-Unterstützung, aber Sie mögen Java nicht? Dann vielleicht:
Schnelligkeit : Watir-API, die auf JRuby ausgeführt wird und von HtmlUnit unterstützt wird.
oder ähnlich
Schnell : ein weiterer JRuby-Wrapper von HtmlUnit.
Wenn HtmlUnit nicht gut genug ist und Sie einen Browser steuern müssen, können Sie Watir in Betracht ziehen, um Ihren JS zu steuern .
quelle
YUI hat auch ein Test-Framework . Dieses Video von Yahoo! Theater ist eine nette Einführung, obwohl es im Vorfeld viele Grundlagen zu TDD gibt.
Dieses Framework ist generisch und kann für jede JavaScript- oder JS-Bibliothek ausgeführt werden.
quelle
Vielleicht interessieren Sie sich auch für das Unit-Testing-Framework, das Teil von qooxdoo ist , einem Open-Source-RIA-Framework, das Dojo, ExtJS usw. ähnelt, aber eine recht umfassende Toolkette aufweist .
Probieren Sie die Online-Version des Testrunners aus . Hinweis: Drücken Sie den grauen Pfeil oben links (sollte deutlicher hervorgehoben werden). Es ist eine "Wiedergabe" -Taste, mit der die ausgewählten Tests ausgeführt werden.
Weitere Informationen zu den JS-Klassen, mit denen Sie Ihre Komponententests definieren können, finden Sie im Online- API-Viewer .
Informationen zu automatisierten UI-Tests (basierend auf Selenium RC) finden Sie im Simulator- Projekt.
quelle
Sie sollten sich env.js ansehen . In meinem Blog finden Sie ein Beispiel für das Schreiben von Komponententests mit env.js.
quelle
Wir haben die JUnit-Integration zu unserem Java-Javascript-Codegenerator ST-JS ( http://st-js.org ) hinzugefügt . Das Framework generiert das entsprechende Javascript sowohl für den getesteten Code als auch für die Komponententests und sendet den Code an verschiedene Browser.
Es ist kein separater Server erforderlich, da der Unit-Test-Runner den erforderlichen http-Port öffnet (und ihn nach Abschluss der Tests schließt). Das Framework manipuliert den Java-Stacktrace so, dass die fehlgeschlagenen Asserts vom JUnit Eclipse-Plugin korrekt angezeigt werden. Hier ist ein einfaches Beispiel mit jQuery und Mockjax:
quelle
MochiKit hat ein Testframework namens SimpleTest, das sich anscheinend durchgesetzt hat. Hier ist ein Blog-Beitrag des ursprünglichen Autors .
quelle