我可以使用Karma、Tape和伊斯坦布尔(特别是babel-伊斯坦布尔)来获得类似于我的ES6代码基的正确的覆盖率报告,但是HTML用红色显示了一些覆盖行,即使它在测试套件中已经覆盖了几次:

特别是,第13行显示了4x覆盖率,这反映了我刚才编写的测试(它调用concat()四次)。
为什么那条线是红色的?
发布于 2016-05-06 13:30:23
我认为正在发生的事情是,这些线是按照保证金中列出的次数运行的,但它们是红色的,因为覆盖的某些方面没有受到影响。例如,看着我的截图,我不确定第13行会是什么,但是将鼠标悬停在红线上会弹出一条信息,解释错过了什么。
发布于 2016-04-11 06:11:33
嗨,我想是因为在你的摩卡文件中,你需要的是lib而不是src。
您应该需要src代码,而不是已编译的代码。并确保在您的package.json脚本中有以下内容
{
"compile": "babel src/ -d lib/ --presets es2015 --source-map both",
"test": "npm run compile && mocha",
"test-cov": "npm run compile && istanbul cover _mocha -- --opts ./test/mocha.opts"
}src是您的源代码,lib是编译后的代码,--source-map both可以帮助伊斯坦布尔跟踪您的源代码的覆盖范围。
在mocha.opts中
--require babel-polyfill
--compilers js:babel-registerhttps://stackoverflow.com/questions/35806728
复制相似问题