使用 Blanket 的 Mocha 测试覆盖率不起作用
Test coverage in Mocha with Blanket doesn't work
我有一个 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 而没有别的。
我通过将此添加到 package.json
得到它 运行:
...
"config": {
"blanket": {
"pattern": "src",
"data-cover-never": ["node_modules"]
}
},
...
显然 Blanket 不 默认为 src
,尽管指南是这么说的(GitHub 上有一个旧的 open issue)。
它还试图覆盖所有匹配模式的路径,而不仅仅是 src
目录,所以在这种情况下它也试图覆盖外部文件(node_modules/has/src/index.js
,这是由 Expect 安装)。我不得不添加 data-cover-never
来避免它。
我有一个 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 而没有别的。
我通过将此添加到 package.json
得到它 运行:
...
"config": {
"blanket": {
"pattern": "src",
"data-cover-never": ["node_modules"]
}
},
...
显然 Blanket 不 默认为 src
,尽管指南是这么说的(GitHub 上有一个旧的 open issue)。
它还试图覆盖所有匹配模式的路径,而不仅仅是 src
目录,所以在这种情况下它也试图覆盖外部文件(node_modules/has/src/index.js
,这是由 Expect 安装)。我不得不添加 data-cover-never
来避免它。