我刚进入一个Node.js项目,该项目有大量的单元测试,不幸的是,其中大部分都已过时且无法运行。没有测试运行器或任何类型的代码覆盖工具实现,重构所有内容肯定不在我的工作范围内。
话虽这么说,但这并不能阻止我想要检查我工作的代码覆盖率。我看过伊斯坦布尔和毯子,但找不到让他们进行某些单元测试的方法。当然,有一种方法可以让我得到一份报告,显然报告的覆盖率非常低,但我可以深入研究某些文件等(我的测试命中的文件),以确保我的代码经过全面测试。
答案 0 :(得分:2)
使用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任务运行测试和覆盖。