Test Coverage mit Jasmine und Karma in 3 einfachen Schritten
In diesem Tutorial lernen wir, wie man die Testabdeckung (Test Coverage) in einem Projekt mit Jasmine einrichtet und wie man die Unit Tests messen kann. Die Testabdeckung ist eine Kennzahl, die angibt, wie viel Code durch Unit Tests abgedeckt wird. Eine gute Abdeckung hilft dabei, ungetestete Teile zu identifizieren und die Zuverlässigkeit der Software zu erhöhen.
Voraussetzungen
- Node.js muss auf Ihrem Computer installiert sein.
- Jasmine ist bereits im Projekt eingerichtet.
- Grundkenntnisse in Unit-Tests.
Schritt 1: Karma mit Test Coverage konfigurieren
Jasmine allein erstellt keine Test Coverage, aber mit Karma können wir das Plugin karma-coverage einfach für diesen Zweck integrieren.
Installieren Sie die erforderlichen Abhängigkeiten:

- Aktualisieren Sie die Konfigurationsdatei von Karma (karma.conf.js), um das Plugin karma-coverage zu benutzen:

- Wichtig zu wissen:
○ preprocessors: Definiert, dass die Dateien im Verzeichnis src/ verarbeitet werden, um die Testabdeckung zu messen.
○ coverageReporter: Konfiguriert den Berichtstyp (in diesem Fall HTML) und das Verzeichnis, in dem der Bericht gespeichert wird, wenn der Test Coverage fertig ist.
Führen Sie die Tests mit Karma aus:

- Nach der Ausführung stehen die Abdeckungsberichte im Verzeichnis coverage/ zur Verfügung.
Schritt 2: Berichte analysieren
Öffnen Sie die Datei coverage/index.html
in einem Browser, um die folgenden Details anzuzeigen:
● Statements: Prozentsatz der abgedeckten Anweisungen.
● Branches: Prozentsatz der abgedeckten Verzweigungen (z. B. if und else).
● Functions: Prozentsatz der getesteten Funktionen.
● Lines: Prozentsatz der abgedeckten Codezeilen.

Schritt 3: Abdeckung verbessern
● Schreiben Sie zusätzliche Tests, um ungetestete Szenarien abzudecken.
● Konzentrieren Sie sich auf kritische Bereiche, wie z. B. Funktionen mit komplexer Logik.
● Verwenden Sie die Metriken aus den Berichten, um wichtige Teile des Codes zu priorisieren.
Damit haben Sie eine effiziente Abdeckungsanalyse mit Jasmine und Karma eingerichtet. Jetzt wissen wir, wo wir unseren Code verbessern können, so wird nicht nur die Qualität erhöht, sondern auch mögliche Fehler erkannt, bevor sie die Nutzer erreichen. Ich hoffe, dieses kurze Tutorial war hilfreich. Now let’s code!