2015-04-24 7 views
7

Ich versuche, die Code-Abdeckung in MOCHA JS-Test zu bekommen. Ich benutze die Decke und die, aber ich bekomme 0% Deckung 0 SLOC, warum ich nicht verstehe. meine package.json istIch bekomme 0% Abdeckung 0 SLOC in Mocha Code-Abdeckung mit Decke

{ 
    "name": "basics", 
    "version": "1.0.0", 
    "description": "", 
    "main": "index.js", 
    "scripts": { 
    "test": "mocha && mocha test --require blanket --reporter html-cov > coverage.html" 
    }, 
    "author": "", 
    "license": "MIT", 
    "devDependencies": { 
    "chai": "~2.2.0", 
    "mocha": "~2.2.4", 
    "blanket": "~1.1.6", 

    }, 
    "config": { 
    "blanket": { 
     "pattern": ["index.js"], 
     "data-cover-never": "node_modules" 
    } 
    } 
} 

und index.js ist

exports.sanitize = function(word){ 


    return word.toLowerCase().replace(/-/g, ' '); 
} 

exports.testToString = function(){ 


    return word.toLowerCase().replace(/-/g, ' '); 
} 

und indexSpec.js, die unter Testordner ist

var chai = require('chai'); 
var expect = require('chai').expect; 
var word = require('../index.js'); 

describe ('sanitize', function(){ 
    it('String matching ', function(){ 

     var inputWord = 'hello WORLD'; 
     var outputWord = word.sanitize(inputWord); 
     expect(outputWord).to.equal('hello world'); 
     expect(outputWord).to.not.equal('HELLO WORLD'); 
     expect(outputWord).to.be.a('string'); 
     expect(outputWord).not.to.be.a('number'); 

    }); 

    it('Checke hyphen ', function(){ 
     var inputWord = 'hello-WORLD'; 
     var outputWord = word.sanitize(inputWord); 
     expect(outputWord).to.equal('hello world'); 
    }); 
}) 
+1

verfügbar sein, die ich genau das gleiche Problem habe, hast du jemals dieses Problem beheben? Mein Paket.json Skript und Konfiguration sieht identisch mit Ihrem. – Dustin

+0

Ich habe auch dieses genaue Problem. –

+0

Dieses Problem wurde behoben, als ich den neuesten Knoten js installierte – user993158

Antwort

0

Get Decke aus dem git Repo. Ich weiß nicht, was mit ihrem NPM-Paket los ist, aber es hat auch nicht für mich funktioniert.

Das Modul von Git Repo erhalten funktioniert gut.

Nehmen Sie die folgenden Änderungen in Ihrer package.json Datei

"devDependencies": { 
    "chai": "~2.2.0", 
    "mocha": "~2.2.4", 
    "blanket": "git://github.com/alex-seville/blanket.git" 
}, 
0

hatte ich dieses Problem und hinzugefügt, wie empfohlen hier durch Neilskrijger eine blanket.js Datei in meinem Stammverzeichnis ... https://github.com/alex-seville/blanket/issues/361. Ich legte dann meine Decke Muster in meinem Paket.json zu "/ lib", die die Wurzel meines Quellcodes war und es funktionierte. Der Schrägstrich war erforderlich. Mein Testskript war "mocha --require blanket - R html-cov --recursive> coverage.html".

0

Es scheint, als hätten viele von uns das gleiche Tutorial verwendet und das gleiche Problem gelöst.

ich alle Hinweise auf dieser Seite gegeben habe versucht (versucht, mit Knoten Versionen: node-V4.3.1 und Knoten-v5.7.0) + ein paar mehr ohne Glück ich mit einem anderen Paket Istanbul endete, die Ich hätte es von Anfang an tun sollen, da ich normalerweise die Statistiken als Indikator dafür nutze, welches Paket zu verwenden ist (es wird von so vielen weiteren Benutzern verwendet). Erster Versuch mit diesem Paket und es hat funktioniert :-) Ich habe diese an das Skript Abschnitt package.json:

„Abdeckung“:“./node_modules/.bin/istanbul Abdeckung ./node_modules/mocha/bin/_mocha - -R spec "

1

Paul hat Recht. Es macht keinen Sinn, eine fehlerhafte Bibliothek zu verwenden. Die Schritte zur Herstellung dieses Code mit Istanbul:

  1. Istanbul installiert global npm install -g istanbul
  2. ändern Skript Abschnitt in package.json
"scripts": { 
    "test": "mocha", 
    "coverage": "istanbul cover node_modules/mocha/bin/_mocha -- -R spec" 
    }, 
  1. Testlauf durch Eingabe von npm test

  2. Generage Berichterstattung Bericht: npm run coverage

Coverage Report wird in coverage/lcov-report/index.html