我刚刚进入一个 Node.js 项目,该项目有大量的单元测试,不幸的是,其中大多数都已经过时并且无法运行。没有实现测试运行程序或任何类型的代码覆盖工具,并且重构所有内容当然不在我的工作范围内。
话虽这么说,但这并不能阻止我检查我工作的代码覆盖率。我查看了 Istanbul 和 Blanket,但找不到只让它们运行某些单元测试的方法。当然,有一种方法可以让我获得一份报告,显然,报告的覆盖率非常低,但我可以深入研究某些文件等(我的测试命中的文件),以确保我的代码经过彻底测试。
最佳答案
使用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 任务运行测试和覆盖。
关于javascript - 某些测试文件的 Node.js 代码覆盖率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31953757/