【问题标题】:Mocha with Blanket, Babel and LCOV reporter摩卡与毯子、通天塔和 LCOV 记者
【发布时间】:2015-06-28 20:11:33
【问题描述】:

嗨,

我的 Mocha 配置有问题。我有应该由 Babel 编译的 ES6 代码,然后我想获得这个 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 文件。

启动此命令后,我从esprima.js 收到Error: Line 1: Unexpected reserved word 错误。当我在不需要测试/空白文件的情况下运行它时,它运行没有问题,但我没有覆盖。

有人试过吗?你有什么想法吗?

【问题讨论】:

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


    【解决方案1】:

    好的,问题已经解决了,但是没有 Babel(代替原生 ES6);我已经用另一种方式做到了。我用过istanbul-harmonymocha 包。那么命令是:

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

    【讨论】:

    • 此时您甚至不需要istanbul-harmony。请参阅this question 了解更多信息。
    猜你喜欢
    • 2016-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多