Karma ist ein Testläufer für Javascript, das auf Nodes.js ausgeführt wird. Das Tool ist sehr gut dafür geeignet, Angularjs oder andere Javascript-Projekte zu testen. Entwickler verwenden Karma, um Tests mit einem von vielen beliebten Javascript-Testsuiten (Jasmin, Mokka, Qunit usw.) auszuführen. Diese Tests werden nicht nur in den Browsern ihrer Wahl durchgeführt, sondern auch auf der Plattform ihrer Wahl (Desktop, Telefon, Tablet). Karma ist hoch konfigurierbar, integriert sich mit beliebten kontinuierlichen Integrationspaketen (Jenkins, Travis und Semaphor) und verfügt über einen hervorragenden Plug-in-Support.
Der Testläufer wurde für die Open Source Community in Github entwickelt und ermöglicht ein simples Debuggen direkt von der IDE über Webstorm oder Google Chrome. Die Continuous Integration gewährleistet eine einfache Eingliederung von Jenkins, Travis oder Semaphor. Karma ist ein node-basiertes Testwerkzeug, mit dem Anwender ihre Javascript-Codes über mehrere echte Browser testen können. Dies ist ein beliebiges Tool, welches das Nodejs-Engine installiert. Der Testlaüfer ist ein Werkzeug, das unsere testgetriebene Entwicklung schnell und einfach macht. Das Tool wird technisch als Testläufer bezeichnet.
Mit Plug-ins kann die Karma-Funktionalität problemlos erweitert werden. Tatsächlich sind die oben genannten Strukturen des Browsers und des Tests in Form von Plug-ins bereits integriert. Plug-ins sind im Sinne von Karma NPM-Module und müssen zunächst über das erforderliche NPM.JSON-Paket herunterladen und installiert werden.
Karma eignet sich besonders für modulare Tests. Entwickler verwenden es als Teil der kontinuierlichen Integration (CI). Das Tool ist nicht nur lokal verfügbar, sondern dient dem Entwickler direkt als Entwicklungswerkzeug. Karma kann auch auf CI-Server ausgeführt werden. Auf Karma-Websites wird die Verwendung für Jenkins Ci, Travis CI und Semaphor CI erklärt.
Funktionsweise
Das Hauptziel von Karma ist es, Entwicklern ein produktives Testumfeld zu geben. Mit diesem Werkzeug müssen Entwickler keine Übermengen an Konfigurationen einrichten, sondern lediglich den Code schreiben und erhalten darauf ein sofortiges Feedback aus den Tests. Dieses schnelle Feedback macht die Entwickler produktiv und kreativ.
Mit dem Tool testen die Anwender ihren Code auf realen Browsern und echten Geräten wie Telefonen, Tablets oder auf einer Phantomjs-Instanz. Entwickler steuern den gesamten Workflow von der Befehlszeile oder der IDE aus. Sie speichern eine Datei, und Karma leitet alle Tests ein. Nutzer beschreiben ihre Tests mit Jasmin, Mokka, Qunit oder schreiben einen einfachen Adapter für jeden von ihnen gewünschten Frame.
Der empfohlene Installationsort von Karma befindet sich in dem globalen Node Modules-Verzeichnis. Das Installieren erfolgt über den Nodes Package Manager (NPM).
Als Testläufer tut Karma drei wichtige Dinge:
+ Das Tool startet einen Webserver und dient der Javascript Quelle und den Testdateien auf diesem Server.
+ Lädt alle Quell- und Testdateien in der richtigen Reihenfolge.
+ Schließlich nutzt es den Browser, um die Tests auszuführen.
Abgesehen von den oben genannten Funktionen gibt es noch einige andere Dinge, die der Testläufer tun kann. Um beispielsweise eine Codest-Testabdeckung an Overalls.IO zu veröffentlichen, transpirieren Entwickler einen Code aus dem ES6-Format auf ES5, bündeln mehrere Dateien miteinander in eine Datei und generieren Quellkarten. Um mit Karma zu beginnen, müssen die Entwickler ein Verständnis von NodeJs und Node-Paketmanager haben. Nodejs löst die sperrbare Natur von Javascript-asynchronen Calls. Mit Nodejs können asynchrone, nicht blockierende Funktionscalls erfolgen.
Vorteile von diesem Werkzeug
- Open Source
- Ermöglicht die Continuous Integration
- Tests mit vielen beliebten Javascript-Testsuiten
- Tests auf beliebiger Plattform möglich (Desktop, Telefon, Tablet)
- Macht die testgetriebene Entwicklung schnell und einfach
Fazit
Der Javascript-Testläufer bietet dem Javascript-Programmierer ein einfaches, aber praktisches Testumfeld für tägliche Arbeit. Anbei sei darauf hingewiesen, dass Karma auf allen Plattformen wirklich schnell und einfach auf den Start gebracht werden kann. Mit diesem Tool können Prüfungen während der Entwicklung durchgeführt werden, wodurch die Qualität des Codes geschützt wird. Zunächst wird der Test geschrieben und nur dann der Code zum Testen der Komponente. Karma steuert alle erforderlichen Schritte im Hintergrund.