为什么我的覆盖率报告以红色显示覆盖线?

Why does my coverage report show covered lines in red?

我可以使用 Karma、Tape 和 Istanbul(特别是 babel-istanbul)来获取我的 ES6 代码库的正确覆盖率报告,但是 HTML 报告显示了一些红色的覆盖线,即使它在空白处显示它们已在测试套件中被覆盖了很多次:

特别是,第 13 行显示了 4 倍的覆盖率,这反映了我刚刚编写的测试(调用 concat() 四次)。

为什么那条线是红色的?

您好,我认为这是因为在您的 mocha 文件中,您需要 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 可以帮助 istanbul 跟踪源代码的覆盖率

在mocha.opts

--require babel-polyfill
--compilers js:babel-register

我认为发生的事情是这些线被 运行 列在边距中的次数,但它们是红色的,因为覆盖的某些方面没有'没被击中查看我的屏幕截图,我不确定第 13 行可能是什么,但是将鼠标悬停在红线上会弹出一条消息,解释遗漏的内容。