摩卡与毯子,巴贝尔和LCOV记者

时间:2015-04-21 15:04:31

标签: javascript mocha ecmascript-6 babeljs blanket.js

HIHO,

我的Mocha配置出了问题。我有ES6代码应该由Babel编译,然后我想得到这个ES6代码的覆盖范围(LCOV格式)。

我解决此问题的方法是使用mochamocha-lcov-reporterbabelblanket个包。代码结构是:

-- src
----- ...
-- test
----- spec
-------- something.spec.js
-------- ...
----- blanket.js

规范位于test/spec目录中(也匹配*.spec.js模式)和blanket.js是:

require('blanket')({
    pattern: require('path').join(__dirname, '..', 'src')
});

我准备的命令是:

./node_modules/.bin/mocha $(find test -name '*.spec.js') --recursive --compilers js:babel/register -r test/blanket -R mocha-lcov-reporter

因此,它应对所有*.spec.js文件运行Mocha测试,由Babel编译并在之前启动test/blanket.js文件。

启动此命令后,我从Error: Line 1: Unexpected reserved word收到esprima.js错误。当我运行它而不需要测试/一揽子文件时,它运行没有问题,但是我没有覆盖。

是否有人试图这样做?你有任何想法怎么做吗?

1 个答案:

答案 0 :(得分:2)

Okey,问题已经解决,但没有Babel(原生ES6代替);我换了另一种方式。我使用了istanbul-harmonymocha个包。然后命令是:

./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha -- $(find test -name '*.spec.js') -R spec -u exports