【问题标题】:Node.js Code Coverage of Certain Test Files某些测试文件的 Node.js 代码覆盖率
【发布时间】:2015-08-11 23:40:00
【问题描述】:
我刚进入一个包含大量单元测试的 Node.js 项目,不幸的是,其中大部分都已过时且无法运行。没有实现任何测试运行程序或任何类型的代码覆盖工具,而且重构所有内容肯定不在我的工作范围内。
话虽如此,但这并不能阻止我想要检查我工作的代码覆盖率。我查看了伊斯坦布尔和毯子,找不到只让它们运行某些单元测试的方法。当然,有一种方法可以让我得到一个报告,显然,报告的覆盖率非常低,但我可以深入研究某些文件等(我的测试命中的那些),以确保我的代码经过全面测试。
【问题讨论】:
标签:
javascript
node.js
unit-testing
istanbul
blanket.js
【解决方案1】:
使用 istanbul.js,您可以通过例如指定以下命令轻松获取覆盖率信息(以下示例使用 mocha,但对于任何测试框架都类似):
istanbul cover node_modules/.bin/_mocha -- -u exports -R spec test/test1.spec.js test/test2.spec.js
您还可以在特定子目录中指定所有测试,例如:test/yourfeaturetest/*.spec.js。您还可以使用 test/myfeature/**/*.spec.js 之类的东西来覆盖 test/myfeature 目录中的所有测试,包括可能在子目录中递归创建的测试。
就我而言,我使用 gulp,因此使用 gulp-istanbul 等插件并通过 gulp 任务运行测试和覆盖。