Ich verwende Mocha zum Testen meiner NodeJS-Anwendung. Ich kann nicht herausfinden, wie die Codeabdeckungsfunktion verwendet wird. Ich habe versucht, es zu googeln, aber kein richtiges Tutorial gefunden. Bitte helfen Sie.
node.js
unit-testing
code-coverage
mocha
Tusharmath
quelle
quelle
istanbul cover node_modules/mocha/bin/_mocha
.istanbul.cmd cover C:\Users\{UserName}\AppData\Roaming\npm\node_modules\mocha\bin\_mocha
$(npm bin)
ist eine kanonische Verknüpfung zu./node_modules/.bin/
undistanbul/lib/cli.js
ististanbul
im bin-Ordner aliasiert . Also hier ist ein kürzerer Befehl:$(npm bin)/istanbul cover $(npm bin)/_mocha -- --ui bdd -R spec -t 5000
istanbul cover node_modules/mocha/bin/_mocha -- -R spec
Jetzt ( 2020 ) wird Istanbul bevorzugt über die "State-of-the-Art-Befehlszeilenschnittstelle" nyc verwendet .
Installieren
Installieren Sie es zunächst in Ihrem Projekt mit
Wenn Sie ein npm-basiertes Projekt haben, ändern
scripts
Sie einfach das Testskript im Objekt Ihrer Datei package.json , um die Codeabdeckung Ihrer Mokka- Tests auszuführen :Lauf
Führen Sie nun Ihre Tests aus
und Sie werden eine Tabelle wie diese in Ihrer Konsole sehen, gleich nach der Ausgabe Ihrer Tests:
Anpassung
HTML-Bericht
Benutz einfach
statt
text
. Jetzt wird ein Bericht erstellt./coverage/index.html
.Berichtsformate
Istanbul unterstützt eine Vielzahl von Berichtsformaten. Schauen Sie sich einfach die Berichtsbibliothek an, um die für Sie nützlichste zu finden. Fügen
--reporter=REPORTER_NAME
Sie einfach eine Option für jedes gewünschte Format hinzu. Zum Beispiel mitSie haben sowohl die Konsole als auch den HTML-Bericht.
Führen Sie keine Abdeckung mit dem npm-Test durch
Fügen Sie einfach ein weiteres Skript in Ihr Skript ein
package.json
und lassen Sie dastest
Skript nur bei Ihrem Testläufer (z. B. Mokka):Führen Sie nun dieses benutzerdefinierte Skript aus
Tests mit Codeabdeckung ausführen.
Test erzwingen fehlgeschlagen, wenn die Codeabdeckung gering ist
Fehler, wenn die gesamte Codeabdeckung unter 90% liegt:
Fehler, wenn die Codeabdeckung von mindestens einer Datei unter 90% liegt:
quelle
--reporter=html
aktiviert, aber die HTML-Datei ist immer leer, es wird nichts über nicht abgedeckte Blöcke oder% abgedeckt usw. angezeigt, nur Überschriften der TabelleBlanket.js funktioniert auch perfekt.
npm install --save-dev blanket
vor Ihrem test / tests.js
Lauf
mocha -R html-cov > coverage.html
quelle