Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我使用毯子获得0%的摩卡代码覆盖率0 SLOC_Javascript_Node.js_Mocha.js_Chai_Blanket.js - Fatal编程技术网

Javascript 我使用毯子获得0%的摩卡代码覆盖率0 SLOC

Javascript 我使用毯子获得0%的摩卡代码覆盖率0 SLOC,javascript,node.js,mocha.js,chai,blanket.js,Javascript,Node.js,Mocha.js,Chai,Blanket.js,我试图在MochaJS测试中获得代码覆盖率。我正在使用毛毯和保险,但我得到了0%的保险0 SLOC,我不明白为什么。 我的package.json是 { "name": "basics", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "mocha && mocha test --require blanket --reporter htm

我试图在MochaJS测试中获得代码覆盖率。我正在使用毛毯和保险,但我得到了0%的保险0 SLOC,我不明白为什么。 我的package.json是

{
  "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');
    });
} )

从git回购中获得毯子。我不知道他们的npm软件包出了什么问题,但它对我也不起作用

从gitrepo获取模块可以很好地工作

package.json文件中进行以下更改

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

我遇到了这个问题,并按照Neilskrijger的建议在我的根目录中添加了一个blanket.js文件。
然后,我将package.json中的blanket模式设置为“/lib”,这是我源代码的根代码,它起作用了。正斜杠是必需的。我的测试脚本是“mocha--require blanket-R html cov--recursive>coverage.html”。

似乎我们很多人都使用了相同的教程,遇到了相同的问题

我已经尝试了本页上给出的所有提示(尝试了node版本:node-v4.3.1和node-v5.7.0)+没有任何运气的情况下又尝试了一些 最后,我得到了另一个包伊斯坦布尔,我从一开始就应该这样做,因为我通常使用统计数据作为要使用哪个包的指标(它被更多的用户使用)。 第一次尝试使用此软件包,它成功了:-) 我将其添加到package.json的脚本部分:


“覆盖范围”:“/node\u modules/.bin/伊斯坦布尔封面。/node\u modules/mocha/bin/\u mocha--R spec”

保罗是对的。使用buggy库是没有意义的。使此代码与伊斯坦布尔协同工作的步骤:

  • 全球安装伊斯坦布尔
    npm安装-g伊斯坦布尔
  • 在package.json中更改脚本部分
  • 通过键入
    npm测试运行测试

  • 一般覆盖率报告:
    npm运行覆盖率


  • 覆盖率报告将在
    Coverage/lcov report/index.html中提供

    我遇到了完全相同的问题,您解决过这个问题吗?我的package.json脚本和配置看起来与您的完全相同。我也遇到了这个问题。当我安装最新的节点js时,这个问题得到了解决
      "scripts": {
        "test": "mocha",
        "coverage": "istanbul cover node_modules/mocha/bin/_mocha -- -R spec"
      },