Karma ist ein JavaScript-Test-Runner, der mit Node.js entwickelt wurde und für Unit-Tests gedacht ist.
Der Protractor ist für End-to-End-Tests gedacht und verwendet Selenium Web Driver zur Durchführung von Tests.
Beide wurden vom Angular-Team entwickelt. Sie können jede Assertion-Bibliothek verwenden, die Sie mit beiden wollen.
Screencast: Karma Erste Schritte
zugehörige :
Profis :
- Verwendet node.js, daher kompatibel mit Win/OS X/Linux
- Führen Sie Tests von einem Browser oder Headless mit PhantomJS aus
- Gleichzeitige Ausführung auf mehreren Clients
- Option zum Starten, Erfassen und automatischen Beenden von Browsern
- Möglichkeit, Server/Clients auf dem Entwicklungscomputer oder separat zu betreiben
- Tests von einer Befehlszeile aus ausführen (kann in ant/maven integriert werden)
- Schreiben von Tests im Stil von xUnit oder BDD
- Unterstützt mehrere JavaScript-Test-Frameworks
- Automatischer Start von Tests beim Speichern
- Proxy-Anfragen domänenübergreifend
- Individuelle Anpassung möglich:
- Erweitern Sie es, um andere Test-Frameworks zu verpacken (Jasmine, Mocha, QUnit eingebaut)
- Ihre eigenen Behauptungen/Widerlegungen
- Reporter
- Browser-Launcher
- Plugin für WebStorm
- Unterstützt von Netbeans IDE
Nachteile :
Ich bin völlig unqualifiziert, mich zu den Funktionen, Stärken und Schwächen von mocha.js zu äußern, aber es wurde mir gerade von jemandem empfohlen, dem ich in der JS-Community vertraue.
Liste der Funktionen, wie auf der Website angegeben:
- Browserunterstützung
- einfache asynchrone Unterstützung, einschließlich Versprechen
- Testabdeckungsbericht
- String-Diff-Unterstützung
- javascript # API für die Durchführung von Tests
- angemessener Ausstiegsstatus für CI-Unterstützung usw.
- automatische Erkennung und Deaktivierung der Einfärbung für nicht-ttys
- ordnet nicht aufgetretene Ausnahmen dem richtigen Testfall zu
- Unterstützung für asynchrone Testzeitüberschreitungen
- testspezifische Zeitüberschreitungen
- Unterstützung von Growl-Benachrichtigungen
- berichtet über die Dauer der Tests
- hebt langsame Tests hervor
- Unterstützung von Dateiüberwachern
- Erkennung von Lecks in globalen Variablen
- optional Tests ausführen, die einem Regexp entsprechen
- automatisches Beenden, um ein "Hängen" in einer aktiven Schleife zu verhindern
- einfache Meta-Generierung von Suiten und Testfällen
- Unterstützung der Datei mocha.opts
- Anklickbare Suitetitel zum Filtern der Testausführung
- Unterstützung des Node-Debuggers
- erkennt mehrere Aufrufe von done()
- jede beliebige Assertion Library verwenden
- erweiterbare Berichterstattung, gebündelt mit 9+ Reportern
- erweiterbare Test-DSLs oder "Schnittstellen"
- vor, nach, vor jedem, nach jedem Haken
- Unterstützung beliebiger Transpiler (coffee-script usw.)
- TextMate-Bündel
Dieser existiert nicht mehr, er leitet weiter zu sequential.js stattdessen
Yolpo ist ein Werkzeug zur Visualisierung der Ausführung von Javascript. Javascript-API-Entwickler werden ermutigt, ihre Anwendungsfälle zu schreiben, um ihre API zu zeigen und zu erklären. Solche Anwendungsfälle bilden die Grundlage für Regressionstests.
Futuristischer Test Runner mit integrierter Unterstützung für ES2015. Obwohl JavaScript single-threaded ist, kann IO in Node.js aufgrund seiner asynchronen Natur parallel erfolgen. AVA macht sich dies zunutze und führt Ihre Tests gleichzeitig aus, was besonders für IO-lastige Tests von Vorteil ist. Darüber hinaus werden die Testdateien parallel als separate Prozesse ausgeführt, was Ihnen eine noch bessere Leistung und eine isolierte Umgebung für jede Testdatei bietet.
- Minimal und schnell
- Einfache Testsyntax
- Gleichzeitige Durchführung von Tests
- Erzwingt das Schreiben atomarer Tests
- Keine impliziten Globals
- Isolierte Umgebung für jede Testdatei
- Schreiben Sie Ihre Tests in ES2015
- Unterstützung versprechen
- Unterstützung von Generatorfunktionen
- Unterstützung asynchroner Funktionen
- Beobachtbare Unterstützung
- Erhöhte Behauptungen
- Optional TAP o utput
- Stack Traces bereinigen
Ein mit Node.js gebauter JavaScript-Testläufer. Sehr modular und flexibel. Es kommt mit seiner eigenen Assertion-Bibliothek, aber Sie können Ihre eigene hinzufügen, wenn Sie möchten. Die Assertions-Bibliothek ist entkoppelt, so dass Sie es auch mit anderen Testläufern verwenden können. Anstelle der Verwendung von assert(!...)
o expect(...).not...
verwendet er refute(...)
was imho eine nette Wendung ist.
Ein Browser-JavaScript-Test-Toolkit. Es macht Browser-Tests mit Browser-Automatisierung (denken Sie JsTestDriver), QUnit Stil statische HTML-Seiten-Tests, Tests in Headless-Browsern (PhantomJS, jsdom, ...), und mehr. Werfen Sie einen Blick auf Die Übersicht !
Ein Node.js-Test-Toolkit. Sie erhalten die gleiche Testfall-Bibliothek, Assertion Bibliothek, etc. Dies ist auch ideal für hybriden Browser- 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, daher kompatibel mit Win/OS X/Linux
- Tests von einem Browser oder headless mit PhantomJS ausführen (bald)
- Gleichzeitige Ausführung auf mehreren Clients
- Unterstützt NodeJS-Tests
- Server/Clients müssen nicht auf dem Entwicklungscomputer ausgeführt werden (kein IE erforderlich)
- Tests von einer Befehlszeile aus ausführen (kann in ant/maven integriert werden)
- Schreiben von Tests im Stil von xUnit oder BDD
- Unterstützt mehrere JavaScript-Test-Frameworks
- Tests aufschieben, anstatt sie auszukommentieren
- SinonJS eingebaut
- Automatischer Start von Tests beim Speichern
- Proxies Anfragen domänenübergreifend
- Anpassungen sind möglich:
- Erweitern Sie es, um andere Test-Frameworks einzubinden (JsTestDriver eingebaut)
- Ihre eigenen Behauptungen/Widerlegungen
- Reporter (xUnit XML, traditionelle Dots, Spezifikation, Tap, TeamCity und mehr eingebaut)
- Anpassen/Ersetzen des HTML, das für die Ausführung der Browser-Tests verwendet wird
- Integration von TextMate und Emacs
Nachteile :
- Noch in der Beta-Phase, kann also fehlerhaft sein
- Kein Plugin für Eclipse/IntelliJ (bisher)
- Gruppiert die Ergebnisse nicht nach Betriebssystem/Browser/Version wie TestSwarm *. Es gibt jedoch den Browsernamen und die Version in den Testergebnissen aus.
- Keine Historie früherer Testergebnisse wie bei TestSwarm *
- Funktioniert nicht vollständig unter Windows Stand: Mai 2014
* TestSwarm ist auch ein Continuous Integration Server, während Sie für Buster.js einen separaten CI-Server benötigen. Er gibt jedoch xUnit-XML-Berichte aus, so dass die Integration mit Buster.js einfach sein sollte. Hudson , Bamboo oder andere CI-Server.
https://github.com/jquery/testswarm
TestSwarm wird offiziell nicht mehr aktiv entwickelt, wie auf der GitHub-Webseite angegeben. Sie empfehlen Karma, browserstack-runner, oder Intern.
Dabei handelt es sich um ein verhaltensgesteuertes Framework (siehe Zitat unten), das für Entwickler interessant sein könnte, die mit Ruby oder Ruby on Rails vertraut sind. Die Syntax basiert auf RSpec die für Tests in Rails-Projekten verwendet werden.
Jasmine-Spezifikationen können von einer HTML-Seite (wie bei qUnit) oder von einem Test-Runner (wie bei Karma) ausgeführt werden.
Jasmine ist ein verhaltensgesteuertes Entwicklungs-Framework zum Testen von JavaScript-Code. Es ist nicht von anderen JavaScript-Frameworks abhängig. Es benötigt kein DOM.
Wenn Sie Erfahrung mit diesem Test-Framework haben, tragen Sie bitte mit weiteren Informationen bei :)
Projekt Heimat: http://jasmine.github.io/
QUnit konzentriert sich auf das Testen von JavaScript im Browser und bietet dem Entwickler so viel Komfort wie möglich. Klappentext auf der Website:
QUnit ist eine leistungsstarke, einfach zu bedienende JavaScript-Unit-Test-Suite. Sie wird von den Projekten jQuery, jQuery UI und jQuery Mobile verwendet und ist in der Lage, jeden generischen JavaScript-Code zu testen
QUnit hat eine gemeinsame Geschichte mit TestSwarm (siehe oben):
QUnit wurde ursprünglich von John Resig als Teil von jQuery entwickelt. Im Jahr 2008 bekam es sein eigenes Zuhause, einen eigenen Namen und eine eigene API-Dokumentation, so dass auch andere es für ihre Unit-Tests verwenden können. Zu dieser Zeit war es noch von jQuery abhängig. Eine Neufassung im Jahr 2009 hat das behoben, jetzt läuft QUnit völlig eigenständig. Die Assertion-Methoden von QUnit folgen der CommonJS Unit Testing-Spezifikation, die zu einem gewissen Grad von QUnit beeinflusst wurde.
Projekt Heimat: http://qunitjs.com/
Ein weiteres großartiges Instrument ist sinon.js von Christian Johansen, dem Autor von Testgetriebene JavaScript-Entwicklung . Am besten von ihm selbst beschrieben:
Eigenständige Test-Spies, Stubs und Mocks für JavaScript. Keine Abhängigkeiten arbeitet mit jedem Unit-Testing-Framework.
Le site Praktikanten-Website bietet einen direkten Funktionsvergleich mit den anderen Test-Frameworks auf dieser Liste. Es bietet von Haus aus mehr Funktionen als jedes andere JavaScript-basierte Testsystem.
Ein neues, aber dennoch sehr leistungsfähiges Test-Framework. Es ermöglicht auch Snapshot-basierte Tests, was die Testgeschwindigkeit erhöht und eine neue Dynamik in Bezug auf das Testen schafft
Sehen Sie sich einen ihrer Vorträge an: https://www.youtube.com/watch?v=cAKYQpTC7MA
Besser noch: Erste Schritte