如何使用Node,Mocha获取代码覆盖信息

我最近开始在Mocha的帮助下进行Node项目的unit testing。 到目前为止,事情进展顺利,我发现现在我正在考虑在testing中涵盖的所有angular度,我的代码已经有了很大的改进。

现在,我想和我的其他人分享我的经验,并让他们用自己的testing。 我想分享的部分信息是我的代码实际上覆盖了多less。

下面是我的应用程序结构的示例,我将它分为不同的组件或模块。 为了促进重用,我试图保持所有的依赖关系到最小,并孤立到组件文件夹。 这包括保持testing隔离,而不是项目根目录下的默认test/文件夹。

 | app/ | - component/ | -- index.js | -- test/ | ---- index.js 

目前我的package.json看起来像这样。 我正在和伊斯坦布尔玩耍,但是我没有任何关系。 我也尝试使用与相似级别的成功的毯子 。

 { "scripts": { "test": "clear && mocha app/ app/**/test/*.js", "test-cov": "clear && istanbul cover npm test" } 

如果我运行我的test-cov命令,我会从伊斯坦堡(这是没有用的)得到以下错误:

 No coverage information was collected, exit without writing coverage information 

所以我的问题是这样的: 鉴于我目前的应用程序结构和环境,如何正确报告我的代码覆盖使用伊斯坦布尔(或其他工具)?


TL; DR

如何使用Node,Mocha和我当前的应用程序结构报告我的代码覆盖率?


编辑

要清楚的是,摩卡正在这个当前的状态下正确运行testing。 获取代码覆盖率报告是我在努力工作。

编辑2

我收到了另一个问题可能已经回答了我的问题的通知。 它只build议安装伊斯坦布尔和运行cover命令,我已经做了。 另外一个build议是build议使用_mocha运行testing命令,我从一些研究中已经做了防止伊斯坦布尔吞咽Mocha的标志,而在新版本的Mocha中并不需要。

你应该尝试像这样运行你的testing:

 istanbul cover _mocha test/**/*.js 

你需要一个.istanbul.yml文件。 我没有看到它的任何提及 – 很难说不知道它的内容。 我不认为有足够的信息来解决这个问题。 如果你更新这个问题,我会更新这个答案,特别是在赏金到期之前,呃?

这是我如何得到我所有的js项目的代码覆盖(看起来像Sachacr的):

 istanbul cover _mocha -- -R spec --recursive test 
Interesting Posts