2015-10-26 10 views
8

Ich teste eine einfache Anwendung (aus dem Mocha Tutorial Code hier https://marcofranssen.nl/using-mocha-chai-sinon-to-test-node-js/), um Istanbul zum Arbeiten zu bekommen. Mein Problem ist, dass Istanbul gut funktioniert, um mir eine Zusammenfassung der Berichterstattung zu geben, aber dann aus irgendeinem Grund einen Fehler ausspuckt und ich bin mir nicht sicher warum. Meine Tests sind alle bestanden, also sind sie hoffentlich nicht das Problem. Hier ist, wie ich Istanbul laufen:Istanbul gibt mir Deckung, aber beendet die Ausgabe mit einem Fehler

$ istanbul cover test.js 

============================================================================= 
Writing coverage object [C:\Users\path\test\coverage\coverage.json] 
Writing coverage reports at [C:\Users\path\test\coverage] 
============================================================================= 

=============================== Coverage summary =============================== 

Statements : 54.55% (6/11) 
Branches  : 100% (0/0) 
Functions : 0% (0/2) 
Lines  : 54.55% (6/11) 
================================================================================ 
ReferenceError: describe is not defined 
    at Object.<anonymous> (C:\Users\path\test.js:9:386) 
    at Module._compile (module.js:435:26) 
    at Object.Module._extensions.(anonymous function) [as .js] (C:\Users\path 
\AppData\Roaming\npm\node_modules\istanbul\lib\hook.js:107:24) 
    at Module.load (module.js:356:32) 
    at Function.Module._load (module.js:311:12) 
    at Function.Module.runMain (module.js:467:10) 
    at runFn (C:\Users\path\AppData\Roaming\npm\node_modules\istanbul\lib\com 
mand\common\run-with-cover.js:122:16) 
    at C:\Users\path\AppData\Roaming\npm\node_modules\istanbul\lib\command\co 
mmon\run-with-cover.js:251:17 
    at C:\Users\path\AppData\Roaming\npm\node_modules\istanbul\lib\util\file- 
matcher.js:68:16 
    at C:\Users\path\AppData\Roaming\npm\node_modules\istanbul\node_modules\a 
sync\lib\async.js:52:16 

Ich bin mir nicht sicher, warum describe nicht erkannt wird, da alle Tests gut laufen und übergeben.

Antwort

8

das Problem gefunden: Mokka nicht global installiert war, so hatte ich es verweisen:

istanbul cover /path/to/bin/_mocha path/to/test.js 
+2

** Anmerkung, die unterstreichen ** Es ist '_mocha' und nicht' mocha'. Dies funktioniert auch, wenn Sie Mocha global haben, d. H. 'Istanbul cover _mocha'. Für weitere Informationen über 'warum dieser Unterstrich', lesen Sie [diese Ausgabe] (https://github.com/gotwarlost/istanbul/issues/44) – sgtdck

+1

Ha! Ich hatte das gleiche Problem trotz lokaler und globaler Installation beider Bibliotheken. Nach einer Reihe von Suchanfragen landete ich wieder hier und kam schließlich zu @sgtdcks Kommentar> https://github.com/gotwarlost/istanbul/issues/44, wo '' '' '' ''' '' '' '' '' '' '' _mocha - -u exportiert spec''' behob das Problem ohne weitere Änderungen. Jetzt '' 'npm test''' läuft Mokka und Istanbul ist in Ordnung! Danke Leute! – datafunk