NodeJS应用程序中的function自动化Code​​Coverage

我正在寻找可以帮助我确定nodeJs中的function自动化覆盖的工具的指针。 (这不是unit testing!)。

我有很多运行在NodeJS中的前端应用程序的selenium自动化。 但是我想知道这些自动化的function覆盖面。

(我之前使用的是基于java的jacoco)

正如其中一个评论所述, 伊斯坦布尔是一个非常好的,非常通用的覆盖工具。 它充当节点进程和脚本之间的中间人,所以只要你在节点运行时执行了一些东西,它就应该做你想做的事情。 我不知道你是如何运行你的seleniumtesting,但我运行摩卡,就像这样:

node ./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha -- test/*-test.js #or simply: ./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha -- test/*-test.js 

即使摩卡通常是作为自己的“命令”运行,它可以“喂”到伊斯坦布尔和覆盖面打印出来的方式。 所以在你的情况下,无论你用什么命令来运行在node / selenium前端testing可以运行在伊斯坦布尔。 正如我所说,这是一个非常通用的过程,可以应用于node.js中运行的任何东西。

现在我对Selenium没有什么经验,但是我知道这是一个Rube Goldberg系统,有许多相互关联的进程(有些可能位于不同的机器上)。 如果你正在寻找一些东西来捕捉前端,后端和testing代码(或在浏览器中运行的前端代码,从后端代码服务),我不知道是否存在(“在NodeJS中编写的前端应用程序”是什么把我关进这个)。

这个问题的答案是有istanbul-middleware https://github.com/gotwarlost/istanbul-middleware

istanbulistanbul-middleware是不同的,需要分开安装。 我已经用这个成功地testing了代码。 步骤如下

  1. istanbul-middleware添加到您的nodejs应用程序中
  2. 在您的应用程序启动中添加检测代码。 这个例子在github中给出。
  3. 然后启动你的节点服务器并运行你的seleniumtesting。
  4. 如果你在本地主机运行,那么你可以转到/coverage (或者如果你从github的例子改变它在这里),并获得您的覆盖范围的信息。

阅读github自述文件以获取更多详细信息。