Mocha 是一个流行的 JavaScript 测试框架,它支持运行在命令行上,它可以帮助你编写高质量的测试用例,确保你的前端应用程序如预期般运行。
Mocha 的命令行接口提供了很多选项,可以控制测试运行的方式,我们接下来将详细介绍一些常见的用法和示例。
安装 Mocha
在开始之前,我们需要先安装 Mocha。可以在全局或项目本地安装 Mocha。
# 全局安装 npm install -g mocha # 本地安装 npm install mocha
Mocha 的命令行选项
在命令行上运行 Mocha,需要在终端中输入 mocha
,然后是一些参数和选项。下面是一些常见的选项:
--reporter <reporter>
:指定测试结果的输出格式,默认为 spec 格式。--require <module>
:在运行测试之前,载入指定的模块。--timeout <ms>
:设置测试用例的超时时间,单位为毫秒,默认为 2000 毫秒。--fgrep <pattern>
:只执行匹配指定字符串的测试用例,支持模糊匹配。--grep <pattern>
:只执行匹配指定正则表达式的测试用例,支持精确匹配。--bail
:执行到第一个失败的测试用例时,停止运行测试。
运行测试用例
在项目根目录下创建一个 test
目录,然后在这个目录下编写测试用例,并以 .test.js
后缀命名。比如,我们可以创建一个测试用例文件 array.test.js
,以测试一个处理数组的函数。
-- -------------------- ---- ------- ----- ------ - ----------------- ----- ------ - ----- -- ----------- -- - - -- ----------------- -- -- - ------------------ -- -- - ---------- ------ - --- ----- ---- ------ -------- -- -- - --------------------------- -- ---- --- -- --- ---------------------------- --- ----- ---- --- ---- --------------------------- -- ---- --- -- --- -- -- --展开代码
在终端中运行以下命令,即可执行这个测试用例:
./node_modules/.bin/mocha test/array.test.js
或者,全局安装 Mocha 后,可以直接使用 mocha
命令:
mocha test/array.test.js
如果一切正常,你应该能看到类似以下的测试结果:
Array #map() ✓ should return a new array with double values (50ms) 1 passing (55ms)
载入模块
在测试用例中,我们经常需要使用一些外部模块或者工具函数。Mocha 允许在运行测试前,先载入指定的模块,避免代码重复。可以使用选项 --require <module>
实现。
mocha --require mocha-sinon test/array.test.js
上面的命令中,我们要载入名为 mocha-sinon
的模块,实现 sinon.js 的支持。这样,在 array.test.js
中,我们就可以直接使用 sinon
对象了。
指定输出格式
Mocha 默认使用 spec
格式输出测试结果,它简单明了,但不太友好。你可以根据需求使用其他格式,比如 TAP、JSON 等。可以使用选项 --reporter <reporter>
实现。
mocha --reporter tap test/array.test.js
上面的命令中,我们要使用 tap
格式输出测试结果,它是一种行动数据格式。
调整超时时间
当测试用例执行时间超过指定的时间,Mocha 会认为这个用例执行失败。可以使用选项 --timeout <ms>
调整超时时间。
mocha --timeout 5000 test/array.test.js
上面的命令中,我们要将超时时间调整为 5000 毫秒,防止某些用例执行时间较久,被错误认为是失败。
精确匹配
选项 --grep <pattern>
可以让你只运行符合指定正则表达式的测试用例。比如,我们只想测试用例文件中包含数组相乘的测试用例:
mocha --grep 'should return a new array with double values' test/array.test.js
上面的命令将只执行符合正则表达式 'should return a new array with double values'
的测试用例。
模糊匹配
选项 --fgrep <pattern>
与 --grep
类似,但支持模糊匹配。比如,我们只想测试用例文件名中包含数组的测试用例:
mocha --fgrep 'array' test/*.test.js
上面的命令中,我们使用通配符 *
来匹配所有以 .test.js
结尾的测试文件,然后指定模糊匹配字符串 'array'
,将只执行符合条件的测试用例。
停止运行
选项 --bail
可以让 Mocha 在运行到第一个失败的测试用例时,停止运行。如果你只需要运行一部分测试用例,或者想快速定位错误,这个选项会很有帮助。
mocha --bail test/array.test.js
上面的命令中,我们将在第一个失败的测试用例时,停止运行。
结语
本文介绍了 Mocha 在命令行上运行的一些常见选项和用法,以及示例代码。我们希望这篇文章能够帮助你更好地使用 Mocha,提高前端程序测试质量。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67c50c456e1fc40e36e41f41