2015-06-11 8 views
15

Ich versuche, Istanbul zur Arbeit zu bringen.Istanbul Codeabdeckung für Mocha-Tests

Ich halte diese Nachricht am Ende des Lauf Istanbul bekommen:

No coverage information was collected, exit without writing coverage information

ich alles versucht habe, konnte ich online finden, wie Sie sehen können:

 "scripts": { 
     "start": "node ./bin/start.js", 
     "test": "mocha test --no-timeouts", 
     "debug_mocha": "node-debug --no-timeouts _mocha", 
     "eslint": "eslint .", 
     "jshint": "jshint --exclude ./node_modules .", 
     "istanbul": "istanbul cover --include-all-sources --hook-run-in-context node_modules/.bin/_mocha -- -u exports -R spec test/**/*", 
     "istanbul2":"istanbul cover node_modules/.bin/_mocha -- -u exports -R spec test/**/*", 
     "istanbul1":"istanbul cover node_modules/.bin/_mocha -- test/**/*", 
     "istanbul0":"istanbul cover _mocha test/**/*.js", 
     "istanbul3":"istanbul cover _mocha -- -R spec --recursive test" 
     } 

meine .istanbul.yml Datei an der Wurzel des Projekts und sieht aus wie Istanbul es erfolgreich abholt.

//.istanbul.yml 
    instrumentation: 
     compact: false 
     save-baseline: true 
    reporting: 
     reports: 
     - lcov 
     - cobertura 

Was fehlt mir?

+0

Können Sie den Code unter Test teilen und die Spezifikationen verwenden, um sie zu testen? – JME

+0

Hallo JME..sorry was meinst du Spezifikationen verwendet, um sie zu testen? –

+0

Specs = Tests ;-) – JME

Antwort

6

die Sie interessieren, können sie für Sie arbeitet. Script-Tag in Ihrem package.json

"cover" : "NODE_ENV=test babel-node ./node_modules/babel-istanbul/lib/cli cover --dir ./coverage _mocha -- -R spec --ui bdd ./test/setup.js ./test --recursive" 

setup.js wird das Setup der JavaScript

./test wird der Ordner, in denen alle Tests sitzt.

Pakete installieren müssen:

  • babel-istanbul
  • babel-Knoten
  • Mokka

Dies funktioniert für mich :) (NPM Laufabdeckung)


Hinweis: wenn auf Fenster: entfernen NODE_ENV = Test und müssen möglicherweise die _mocha vollständigen Pfad zu Ihrem Knoten Modulordner

0

Wenn Sie die Einrichtung ein neues Projekt und versuchen zu bekommen Istanbul zu arbeiten, stellen Sie sicher machen dass Sie mindestens eine Testdatei haben, die mindestens eine der Projektdateien referenziert, auf die Istanbul für seinen Abdeckungsbericht verweist.

"istanbul": "0.4.4", 
    "mocha": "3.0.0" 

In meinem Fall war ich ein neues Projekt einrichten und bekommen die ersten index.js und test/index.spec.js prepped Dateien.Als ich zu laufen versucht:

"test": "istanbul cover --report html node_modules/mocha/bin/_mocha -- test/**/*.js --ui bdd -R spec" 

bekam ich eine Ausgabe von Mokka alles vorbei Unit-Tests (die es keine Tests noch geschrieben waren so alle 0 von ihnen bestanden), aber ich erhielt dann diesen Fehler danach:

No coverage information was collected, exit without writing coverage information

die Frage stellte sich heraus, dass ich eine require für die index.js Datei in der test/index.spec.js Datei noch nicht aufgenommen hatte. Istanbul hatte keine Dateien, um von den Testdateien zu referenzieren, um nach Abdeckungsinformationen zu suchen.

Wenn es ein Problem Wegfindung ist _mocha im npm Skript verweist, wird es eine zusätzliche „Syntaxerror:“ sein Nachricht, die die folgt „Keine Deckung Informationen wurden gesammelt“ Nachricht.