我正在寻找指向一个工具的指针,该工具可以帮助我确定nodeJs中的功能自动化覆盖率。(这不是单元测试!)
对于用NodeJS编写的前端应用程序,我有很多selenium自动化程序正在运行。但我想知道这些自动化的功能覆盖范围。
(我之前使用了基于java的jacoco )
发布于 2015-03-27 00:22:49
这个问题的答案是让istanbul-middleware https://github.com/gotwarlost/istanbul-middleware
istanbul和istanbul-middleware是不同的,需要单独安装。我已经成功地使用这个工具测试了代码。步骤如下
istanbul-middleware添加到nodejs应用程序中/coverage (或者如果您从github示例中更改它,在这里修改它)并获取您的覆盖率信息。有关更多细节,请阅读github自述文件。
发布于 2014-10-27 21:29:43
正如其中一个注释所提到的,伊斯坦布尔是一个非常好的、非常通用的覆盖工具。它充当节点进程和脚本之间的中间人,因此只要您在节点运行时中执行某项操作,它就应该执行您想做的事情。我不知道您是如何运行您的selenium测试的,但是我在其中运行mocha,如下所示:
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尽管摩卡通常作为自己的“命令”运行,但它可以被“馈送”到伊斯坦布尔,覆盖也是这样打印出来的。因此,在您的示例中,可以在伊斯坦布尔运行用于运行节点/selenium中的前端测试的任何命令。正如我所说的,这是一个非常通用的过程,可以应用于在node.js中运行的任何东西。
现在,我并没有任何使用Selenium的经验,但是我知道它有点像一个Rube Goldberg系统,有许多相互关联的进程(有些可能在不同的机器上)。如果您要在一行中捕获前端、后端和测试代码(或在浏览器中运行的前端代码,从后端代码中提供服务),我不确定是否存在这种情况(“用NodeJS编写的前端应用程序”是我的关键)。
https://stackoverflow.com/questions/26366947
复制相似问题