4

我在 node.js 中有一个使用 mocha 框架的应用程序。我有两个 javascript 源文件,我想对其进行代码覆盖(即 a.js 和 b.js)。我为此目的使用伊斯坦布尔。

这里的问题是我没有得到如何对多个文件进行代码覆盖。我使用以下格式:

istanbul cover node_modules/mocha/bin/_mocha a.js 


istanbul cover node_modules/mocha/bin/_mocha a.js b.js 

但不幸的是,这两个命令都给出了相同的代码覆盖率,我认为它只采用 a.js 代码。是否有任何解决方案可以找到多个文件的代码覆盖率?

4

1 回答 1

2

这里的问题是如何解析伊斯坦布尔的论点。

假设它mocha a.js b.js按您的预期工作,那么这应该是等效的伊斯坦布尔命令:

istanbul cover node_modules/mocha/bin/_mocha -- a.js b.js

伊斯坦布尔将拆分参数--并将右侧的参数传递给左侧的节点脚本。一旦正常工作,伊斯坦布尔的报道报告将正常工作。

如果可能的话,一个改进是给 mocha 一个目录而不是显式的文件名。这样,如果文件名更改,则此代码不必更改。

您还可以通过使用Intern.js进行测试来简化覆盖范围,它实际上使用了 Istanbul 并自动检测所有代码,只需很少的设置。

于 2014-12-16T18:57:07.370 回答