2015-04-24 24 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