2017-05-16 5 views
0

Ich habe eine einfache Node JS-Anwendung und verwende Istanbul mit Mocha, um Code-Coverage-Berichte zu erstellen. Das funktioniert gut.Fehlercodeabdeckung, wenn keine Tests für Code vorhanden sind

Wenn ich eine neue Funktion schreibe, aber keine Tests dafür erstellen (oder sogar eine Testdatei erstellen), ist es möglich, dies zu überprüfen?

Mein ultimatives Ziel ist, dass Code, der überhaupt keine Tests enthält, von unserem kontinuierlichen Integrationsprozess erfasst wird und dass dieser Build fehlschlägt.

Ist das möglich?

Antwort

0

Eine Möglichkeit, dies zu erreichen, ist die Codeabdeckung.

"check-coverage": "istanbul check-coverage --root coverage --lines 98 --functions 98 --statements 98 --branches 98" 

Fügen Sie einfach diese in Ihrer package.json Datei, die Schwelle bei Bedarf ändern. Wenn Code geschrieben wird, aber kein Test, wird die Abdeckung reduziert.

+0

Hallo. Danke für deine Antwort. Ich verwende diesen Befehl bereits in meinem package.json, aber es scheint nicht die Datei aufzunehmen, die ich ohne Tests habe. Bevor ich diesen Befehl ausführen kann, muss ich den 'cover'-Befehl ausführen, um eine' coverage.json'-Datei zu erzeugen. –

0

Ich bin nicht sicher, ob dies der richtige Weg ist, um das Problem zu lösen, aber den cover Befehl zuerst ausgeführt wird und das Hinzufügen der Parameter --include-all-sources dies berichtete dann auf einem beliebigen Code ohne Testdatei und hinzugefügt, um sie in die coverage.json Datei, um sie erzeugte .

Dann würde die check-coverage läuft scheitern, was ist, was ich danach bin. In meinem CI-Prozess würde ich cover zuerst, dann check-coverage

laufen Ich persönlich finde die Dokumentation über Istanbul ein wenig verwirrend/un-klar, weshalb ich das nicht zuerst sah!

Verwandte Themen