Node.js 部分测试文件的代码覆盖率
Node.js Code Coverage of Certain Test Files
我刚刚进入一个 Node.js 项目,该项目有大量的单元测试,不幸的是,其中大部分都已过时并且没有 运行。没有测试 运行ner 或任何类型的代码覆盖工具实现,重构所有内容当然不在我的工作范围内。
话虽这么说,但这并不能阻止我检查我工作的代码覆盖率。我查看了 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 任务进行测试和覆盖。
我刚刚进入一个 Node.js 项目,该项目有大量的单元测试,不幸的是,其中大部分都已过时并且没有 运行。没有测试 运行ner 或任何类型的代码覆盖工具实现,重构所有内容当然不在我的工作范围内。
话虽这么说,但这并不能阻止我检查我工作的代码覆盖率。我查看了 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 任务进行测试和覆盖。