什么JavaScriptparsing器sould我可以用来重新实现jsCoverage在JavaScript中的节点?

我真的很喜欢node.js中的代码覆盖报告。 我已经创build了一个node.js模块,它可以注入被调用的代码(并且模拟我们的require语句),称为requiremock

我在我的另一个模块nodecoverage中使用了jsCoverage(windows)的二进制版本来生成代码覆盖率报告,并使用requiremock注入了代码版本的代码。

使用jsCoverage的问题是

  1. 它需要编译的平台,因为它是用C(++)编写的,所以我想用JavaScript实现它,这样就可以在任何平台上使用,而不需要编译。
  2. 它将代码版本的代码作为文件写入磁盘。 使用requiremock,我可以在内存中生成检测到的JavaScript文件,并在需要原始文件时运行这些文件。
  3. 当使用函数提升时,jsCoverage不会正确地报告代码覆盖率,并且我在node.js中使用了很多

所以我的问题是:

我应该select使用JavaScript编写的JavaScriptparsing器来将jsCoverage重新实现为node.js模块吗?

我必须能够知道原始文件中的代码的数量,也知道什么是空白。

尝试esprima 。 这很棒。 此外, 节点覆盖可能已经有你所需要的