2015-04-24 47 views
7

我想在MOCHA JS測試中獲得代碼覆蓋率。我正在使用毯子,但我得到0%的覆蓋率0 SLOC爲什麼我不理解。 我的package.json是我正在使用毛毯覆蓋0 SLOC摩卡密碼

{ 
    "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" 
    } 
    } 
} 

和index.js是

exports.sanitize = function(word){ 


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

exports.testToString = function(){ 


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

和indexSpec.js這是測試文件夾下是從混帳回購協議

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

我有完全相同的問題,你有沒有解決這個問題?我的package.json腳本和配置看起來與你的一樣。 – Dustin

+0

我也有這個確切的問題。 –

+0

當我安裝最新的節點js時,此問題得到解決 – user993158

回答

0

獲取毯。我不知道他們的npm軟件包有什麼問題,但它對我也不起作用。

從git倉庫獲取模塊工作正常。

讓你package.json文件

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

我有這個問題,在我的根目錄下添加一個blanket.js文件下面的變化所推薦的Neilskrijger這裏... https://github.com/alex-seville/blanket/issues/361。 然後我在我的package.json中將我的毯子模式設置爲'/ lib',這是我的源代碼的根,它工作。正斜槓是必需的。我的測試腳本是「mocha - 需要一攬子-R html-cov --recursive> coverage.html」。

0

看來我們很多人都使用過相同的教程並遇到同樣的問題。

我已經試過此頁面上提供的所有提示(試圖與節點版本:節點v4.3.1和節點V5.7.0)+多了一些沒有任何的運氣 我結束了另一個包伊斯坦布爾,這我應該從一開始就做,因爲我通常使用統計數據作爲使用哪個包的指標(它被更多的用戶使用)。 第一次嘗試用這個包,它的工作:-) 我已將此添加的package.json的腳本部分:

「覆蓋」:」 ./node_modules/.bin/istanbul蓋./node_modules/mocha/bin/_mocha - -R spec「

1

Paul是對的。使用越野車庫毫無意義。用於與伊斯坦布爾此代碼的工作步驟:

  1. 安裝伊斯坦布爾的package.json全局npm install -g istanbul
  2. 變更腳本部分
"scripts": { 
    "test": "mocha", 
    "coverage": "istanbul cover node_modules/mocha/bin/_mocha -- -R spec" 
    }, 
  • 通過輸入運行測試npm test

  • Generage覆蓋報告:npm run coverage

  • 覆蓋率報告將於coverage/lcov-report/index.html