在前端开发中,JavaScript 单元测试是非常重要的工作,通过单元测试可以确保代码的正确性,提高程序的健壮性。nyc 是一款用来检测 JavaScript 代码覆盖率的工具,可以帮助我们了解测试用例是否覆盖了代码中的所有部分。本文将为大家介绍 npm 包 nyc 的使用教程。
安装 nyc
在开始使用 nyc 之前,首先需要在项目中安装 nyc。可以通过以下命令进行安装:
npm install --save-dev nyc
使用 nyc
1. 在命令行中使用 nyc
可以通过命令行的方式使用 nyc,例如下面这个例子:
首先,在 package.json 文件中添加以下脚本:
{ "scripts": { "test": "mocha tests/**/*.test.js", "coverage": "nyc mocha tests/**/*.test.js" } }
其中,脚本 test
是运行测试用例的命令,脚本 coverage
中是使用 nyc 运行测试用例的命令。这里使用了 **/*.test.js
这样的通配符,代表测试用例可以匹配到任何一个目录下的 .test.js 文件。
然后在终端中执行以下命令运行测试用例并生成覆盖率报告:
npm run coverage
2. 配置 nyc
nyc 可以通过配置文件来设置相关参数,.nycrc
文件可以存放在项目根目录下,在配置文件中定义参数。例如:
-- -------------------- ---- ------- - ---------- - --------------- -------------------- -- ----------- - ------- -------------- -- ------------ ---- -
上面的配置文件设置了排除测试代码和 node_modules 目录;lcov
和 text-summary
分别代表在终端中显示覆盖率汇总信息和生成 lcov 格式的覆盖率报告;启用了 sourceMap 参数,可以帮助我们更精确的定位源代码。
3. 输出覆盖率报告
nyc 可以帮助我们生成各种格式的覆盖率报告,例如 text-summary
,lcov
,cobertura
等。我们可以在配置文件中指定相应的参数来生成所需的格式。
在配置文件中添加 reporter
配置项:
{ "reporter": [ "lcov", "text-summary", "html" ] }
然后运行以下命令:
nyc report
nyc 可以根据配置文件中的 reporter
配置项生成相应格式的报告。
示例代码
以下是一个简单的示例代码:
function add(a, b) { return a + b; } module.exports = add;
以下是测试用例代码:
const add = require('../add'); describe('add()', function() { it('should return the sum of two numbers', function() { const result = add(1, 2); expect(result).toEqual(3); }); });
参考文献:
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5eeda8bdcb6ebf1c9ec1f3e1