简介
mocha 是一个 JavaScript 测试框架,它能运行在浏览器和 Node.js 环境中。它具有丰富的测试用例编写、并行和异步测试支持、易于调试等特点。同时也有众多的扩展插件。@sealsystems/mocha 是在 mocha 基础上支持展示测试覆盖率的 npm 包。
安装
npm i -D @sealsystems/mocha
使用
编写测试用例
假设我们要测试一个求和函数。
// sum.js function sum(a, b) { return a + b; } module.exports = sum;
我们先编写测试用例。
-- -------------------- ---- ------- -- ----------- --- --- - ----------------- --------------- -------- -- - ----- ---- - ------ ----- --- -------- -- - ------------- --------------- --- ----- ---- -- ------ ----- --- -------- -- - ------------- ---------------- --- ---
我们使用 describe 和 it 函数编写测试用例。describe 用于对测试用例进行描述和分类,可以嵌套使用;it 是具体的测试用例。
运行测试用例
使用 @sealsystems/mocha 运行测试用例。
./node_modules/.bin/seals_mocha sum.test.js --reporter mocha-clean
--reporter 参数指定了测试覆盖率报告生成的格式,这里我们使用 mocha-clean 的格式。@sealsystems/mocha 默认集成了一个简单的 HTML 格式的报告格式。
【注】命令行参数 ./node_modules/.bin 可能需要根据你的环境自行调整。
运行结果如下:
sum ✓ 1 plus 1 should equal 2 ✓ 5 plus -2 should equal 3 2 passing (10ms)
我们的两个测试用例都通过了,但是我们并没有看到测试覆盖率报告。
生成测试覆盖率报告
@sealsystems/mocha 使用了 istanbuljs/nyc 来生成测试覆盖率报告。我们需要在命令行中添加 --coverage 参数来生成覆盖率报告。
./node_modules/.bin/seals_mocha sum.test.js --coverage
运行结果如下:
-- -------------------- ---- ------- --- - - ---- - ------ ----- - - - ---- -- ------ ----- - - ------- ------ ----------------------------------------------------------------------------------- ---- - - ----- - - ------ - - ----- - - ----- - --------- ----- - ----------------------------------------------------------------------------------- --- ----- - ----- - --- - - - ----- - - ------ - ----- - --- - - - ----- - - -----------------------------------------------------------------------------------
我们看到没有覆盖到任何函数,说明我们还需要编写更多的测试用例来覆盖我们的代码。
生成 HTML 格式的报告
我们可以生成 HTML 格式的报告,方便阅读。
./node_modules/.bin/seals_mocha sum.test.js --coverage --reporter html
运行结果如下:
我们可以在 report/coverage/index.html 文件中查看报告。
结语
@sealsystems/mocha 是一个便利的测试工具,能为我们的项目提供更全面的测试覆盖率报告,有助于我们更好地发现和排查代码的问题。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/sealsystems-mocha