HIHO,
我的Mocha配置出了问题。我有ES6代码应该由Babel编译,然后我想得到这个ES6代码的覆盖范围(LCOV格式)。
我解决此问题的方法是使用mocha
,mocha-lcov-reporter
,babel
和blanket
个包。代码结构是:
-- 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
错误。当我运行它而不需要测试/一揽子文件时,它运行没有问题,但是我没有覆盖。
是否有人试图这样做?你有任何想法怎么做吗?
答案 0 :(得分:2)
Okey,问题已经解决,但没有Babel(原生ES6代替);我换了另一种方式。我使用了istanbul-harmony
和mocha
个包。然后命令是:
./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha -- $(find test -name '*.spec.js') -R spec -u exports