Gibt es eine Möglichkeit, Codeabdeckung im Javascript Jest-Testframework zu erzielen, das auf Jasmine basiert?
Der interne Rahmen nicht gedruckt werden, um die Code - Coverage wird es. Ich habe auch versucht, Istanbul , Blanket und JSCover zu verwenden , aber keiner von ihnen funktioniert.
javascript
jestjs
Alex Palcuie
quelle
quelle
Antworten:
Bei Verwendung von Jest 21.2.1 kann ich die Codeabdeckung in der Befehlszeile anzeigen und ein Abdeckungsverzeichnis erstellen, indem ich es
--coverage
an das Jest-Skript übergebe. Nachfolgend einige Beispiele:Ich neige dazu, Jest lokal zu installieren. In diesem Fall könnte der Befehl folgendermaßen aussehen:
npx jest --coverage
Ich gehe davon aus (obwohl nicht bestätigt), dass dies auch funktionieren würde, wenn ich Jest global installieren würde:
jest --coverage
Die sehr spärlichen Dokumente sind hier
Als ich in das Coverage / lcov-report- Verzeichnis navigierte, fand ich eine index.html- Datei, die in einen Browser geladen werden konnte. Es enthielt die in der Befehlszeile gedruckten Informationen sowie zusätzliche Informationen und einige grafische Ausgaben.
quelle
node_modules
via, um die Versionskonsistenz und die Paketpräsenz sicherzustellen./node_modules/.bin/jest --coverage
. Solange das Paket in package.json benannt ist, können Sie die Ausführung mit der genauen Version von jest garantieren, die Sie erwarten.UPDATE: 20.07.2008 - Links und aktualisierter Name für CoverageReporter hinzugefügt.
UPDATE: 14.08.2017 - Diese Antwort ist völlig veraltet. Schauen Sie sich jetzt die Jest-Dokumente an. Sie haben offizielle Unterstützung und Dokumentation dazu.
@hankhsiao hat ein gegabeltes Repo, in dem Istanbul mit Jest zusammenarbeitet. Fügen Sie dies Ihren Entwicklungsabhängigkeiten hinzu
Stellen Sie außerdem sicher, dass die Abdeckung in Ihrem package.json-Scherzeintrag aktiviert ist, und Sie können auch die gewünschten Formate angeben. (Das HTML ist ziemlich schlechter Arsch).
Informationen zur Berichterstattung finden Sie in der Jest-Dokumentation (Standard ist
["json", "lcov", "text"]
)Oder fügen
--coverage
Sie hinzu, wenn Sie einen Scherz aufrufen.quelle
coverageReporters
und die Standardeinstellung ist["json", "lcov", "text"]
. Siehe facebook.github.io/jest/docs/…Jan 2019: Scherzversion 23.6
Für alle, die sich in letzter Zeit mit dieser Frage befassen, insbesondere wenn sie mit
npm
oderyarn
direkt testenDerzeit müssen Sie die Konfigurationsoptionen nicht ändern
Auf der offiziellen Website von jest können Sie Folgendes tun, um Berichterstattungsberichte zu erstellen:
1- Für npm:
Sie müssen
--
vor dem Bestehen--coverage
des Scherzarguments setzenWenn Sie versuchen, das
--coverage
direkt ohne das aufzurufen,--
funktioniert es nicht2- Für Garn:
Sie können das
--coverage
Argument des Scherzes direkt übergebenquelle
--watch
Einstellung dafür verwenden.package.json
.Okay, ignoriere meine vorherige Antwort, da mir jemand gesagt hat, dass das Problem dadurch nicht behoben wurde.
Neue Antwort:
1) Überprüfen Sie den neuesten Scherz (v 0.22): https://github.com/facebook/jest
2) Das Facebook-Team nimmt Istanbul als Teil des Berichterstattungsberichts auf und Sie können es direkt verwenden.
3) Nach dem Ausführen von jest können Sie einen Coverage-Bericht auf der Konsole abrufen. Unter dem von jest festgelegten Stammordner finden Sie den Coverage-Bericht im JSON- und HTML-Format.
4) Zu Ihrer Information: Wenn Sie von npm installieren, erhalten Sie möglicherweise nicht die neueste Version. Probieren Sie also zuerst den Github aus und stellen Sie sicher, dass die Abdeckung Ihren Anforderungen entspricht.
Alte Antwort:
Habe das gleiche Problem auch. Kurze Antwort lautet:
Istanbul
undJest
arbeiten NICHT zusammen.Weitere Informationen finden Sie auf den folgenden Seiten:
https://github.com/facebook/jest/issues/101
@Ciro Costa: Das
config.collectCoverage
funktioniert NICHT, da es eine 'TODO'-Funktion ist. Bitte überprüfen Sie den Quellcode.quelle
Wenn Sie Probleme mit --coverage haben, funktioniert dies möglicherweise auch daran, dass CoverageReporter aktiviert ist, ohne dass 'Text' oder 'Textzusammenfassung' hinzugefügt wurde. Aus den Dokumenten: "Hinweis: Durch Festlegen dieser Option werden die Standardwerte überschrieben. Fügen Sie" Text "oder" Textzusammenfassung "hinzu, um eine Abdeckungszusammenfassung in der Konsolenausgabe anzuzeigen." Quelle
quelle
Konfigurieren Sie Ihre package.json-Datei
Führen Sie nun Folgendes aus:
Der gesamte Test wird ausgeführt und Sie erhalten den Bericht.
quelle
Ich hatte das gleiche Problem und habe es wie unten behoben.
npm install --save-dev yarn
npm install --save-dev jest-cli
"jest-coverage": "yarn run jest -- --coverage"
Nachdem Sie die Tests geschrieben haben, führen Sie den Befehl npm run jest-cover aus. Dadurch wird ein Abdeckungsordner im Stammverzeichnis erstellt. /coverage/icov-report/index.html bietet die HTML-Ansicht der Codeabdeckung.
Viel Spaß beim Codieren!
quelle
Versuchen Sie es mit Chutzpah . Ich habe es gerade benutzt. Und ich habe darüber gebloggt, wie man sich in Visual Studio integriert.
So habe ich mit Chutzpah Code-Coverage durchgeführt: http://francorobles.wordpress.com/2014/09/14/code-coverage-with-chutzpah/
quelle
require
.