使用Blanket在Mocha中测试覆盖率不起作用

时间:2015-12-30 15:08:24

标签: javascript node.js mocha blanket.js

我有一个我想测试的Node应用程序,并获得覆盖率报告。我跟着Getting Started Guide,但它似乎不起作用。

我的来源,src/two.js

var two = 1 + 1;
module.exports = two;

我的测试,在test/two.js

var expect = require('expect');
var two = require('../src/two');

describe('two', function() {
  it('should be 2', function(done) {
    expect(two).toBe(2);
    done();
  });
});

我的package.json

{
  "scripts": {
    "test": "mocha",
    "cover": "mocha -r blanket -R html-cov > coverage.html"
  },
  "devDependencies": {
    "blanket": "^1.2.1",
    "expect": "^1.13.4",
    "mocha": "^2.3.4"
  }
}

当我运行npm run test时,一切都按照您的预期运作。但是当我运行npm run cover时,在我的coverage.html文件中,我得到 0%覆盖率0 SLOC ,而不是其他任何内容。

1 个答案:

答案 0 :(得分:0)

我通过将其添加到package.json

来运行它
...
  "config": {
    "blanket": {
      "pattern": "src",
      "data-cover-never": ["node_modules"]
    }
  },
...

显然Blanket 默认为src,尽管指南说明了(GitHub上有一个旧open issue)。

它还尝试覆盖与模式匹配的所有路径,而不仅仅是src目录,因此在这种情况下它也试图覆盖外部文件(node_modules/has/src/index.js,它是由期望)。我必须添加data-cover-never以避免它。