NodeJS 应用程序中功能自动化的代码覆盖率



我正在寻找一个工具的指针,该工具可以帮助我确定nodeJs中的功能自动化覆盖率。(这不是单元测试!

我有很多硒自动化为我的前端应用程序运行 用 NodeJS 编写。但我想知道这些自动化的功能覆盖范围。

(我之前使用jacoco进行基于java(

正如其中一条评论中提到的,伊斯坦布尔是一个非常好的,非常通用的覆盖工具。 它充当节点进程和脚本之间的中间人,因此只要您在节点运行时中执行某些内容,它就应该执行您想要的操作。 我不确定你是如何运行硒测试的,但我像这样运行摩卡

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中运行前端测试,都可以在伊斯坦布尔运行。 正如我所说,这是一个非常通用的过程,可以应用于node.js中运行的任何内容。

现在我真的没有任何使用Selenium的实践经验,但我所知道的是一个Rube Goldberg系统,具有许多相互关联的过程(有些可能在不同的机器上(。 如果您正在寻找在一行中捕获前端、后端和测试代码(或在浏览器中运行的前端代码,由后端代码提供(的东西,我不确定是否存在("用 NodeJS 编写的前端应用程序"是将我键入其中的原因(。

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

istanbulistanbul-middleware不同,需要单独安装。我已经成功地使用它检测了代码。步骤如下

  1. istanbul-middleware添加到 NodeJS 应用程序
  2. 在应用程序启动中添加检测代码。这个例子是在github中给出的。
  3. 然后启动您的节点服务器并针对它运行硒测试。
  4. 如果您在 localhost 中运行,那么您可以转到/coverage(或者如果您从 GitHub 示例中更改了它,请在此处更改它(并获取您的覆盖范围信息。

阅读 github 自述文件了解更多详情。

最新更新