使用 Mocha 的 WebStorm 中的覆盖范围不起作用

Coverage in WebStorm with Mocha doesn't work

我按照本指南将覆盖率报告集成到 WebStorm 中。

https://www.jetbrains.com/help/webstorm/mocha.html

当我单击 "Run Mocha test with coverage" 时,覆盖范围 window 在 运行 测试后显示。但我没有看到任何报道。它甚至不显示 0%,它在统计数据列中根本不显示任何数字。

如有任何帮助,我们将不胜感激。

更多背景:

BABEL_ENV=test and these extra mocha options: --compilers js:babel-core/register

提前致谢

更多信息:当我 运行 覆盖 WebStorm 时,我看到这个命令被输出到控制台:

/Users/nikolaschou/.nvm/versions/node/v8.1.2/bin/node /Users/nikolaschou/Dev/dsg/bifrostshop/node_modules/nyc/bin/nyc.js --reporter=lcovonly --extension=.ts --extension=.js --exclude=test/unitmocha//.spec. --exclude=test/unitmocha//.test. --report-dir=/private/var/folders/q7/kn0zjzks5dz0q2bx0kpg2yhw0000gn/T/mocha-intellij-coverage- /Users/nikolaschou/Dev/dsg/bifrostshop/node_modules/mocha/bin/_mocha --compilers js:babel-core/register --ui bdd --reporter "/Applications/WebStorm 2.app/Contents/plugins/NodeJS/js/mocha-intellij/lib/mochaIntellijReporter.js" --recursive /Users/nikolaschou/Dev/dsg/bifrostshop/test/unitmocha

在项目根目录中添加名为 .nycrc 的文件,内容如下:

{ "exclude": [] }

这会覆盖 nyc 默认配置并恢复 win。

在我的例子中,我遇到了这个问题,因为 mocha 没有正常退出。由于覆盖率报告似乎是在程序退出时生成的,因此从未生成过。

Mocha 4 尤其改变了 Mocha 3 的行为 "no longer automatically kill itself via process.exit() when it thinks it should be done running".

但是您可以使用 --exit 选项强制执行旧行为。 更好的选择可能是检查是什么阻止您的程序终止并执行干净关闭。 (也许在 wtfnode 的帮助下)

读数: