与前端训练营的日子 -- Week18
承接上周笔记,这周的学习任务是测试工具,最后将两周学习的工具链组合起来,完成一个包含 generator、build、test 的工具。不知不觉,已经学了十八周了,还有两周的学习任务,训练营就要结束。整体来说,这个训练营还是很值得的。
第三步,Test 工具
非一次性的业务代码,建议尽量使用单元测试,保障代码稳定性。
单元测试--Mocha
Mocha是目前比较流行的测试框架之一(还有一个Jest)。Mocha最早也是一个针对 Node.js 的测试框架,所以默认在使用Webpack之前,都不支持import 、export的。
安装
Mocha
全局安装npm install --global mocha
局部安装npm install --save-dev mocha
安装
babel/register
为了解决Mocha在使用Webpack之前,都不支持import 、export的问题,需用用到babel/register
安装方式:npm install --save-dev @babel/core @babel/register
通过.babelrc文件配置JavaScript代码转换方式
使用
mocha --require @babel/register命令执行测试
如果用全局的mocha命令会出现MODULE_FOUND,所以建议用以下命令,调用本地的mocha
./node_modules/.bin/mocha --require @babel/register
代码覆盖(code coverage) -- nyc
代码覆盖(code coverage),表示测试覆盖了源文件的哪些代码。nyc是istanbuljs的命令行工具,可用于 coverage,它可以在一个复杂的文件里计算最终测试的覆盖比例。
安装
nyc
安装方式:npm install --save-dev nyc
使用
nyc
nyc ./node_modules/.bin/mocha
让
nyc支持babel
安装
babel-plugin-istanbul配置
.babelrc文件
配置
.nycrc文件
最后执行
nyc ./node_modules/.bin/mocha --require @babel/register就可以正常通过babel解决了不支持import、export的问题,同时又能进行代码覆盖测试
所有工具与 generator 集成
将脚手架(generator)、构建(build)、测试(test)三个工具都整合到一起
以下是index.js 的部分代码
在上周的基础上,将.nycrc和.babelrc两个配置文件添加进templates里并通过fs.copyTpl复制到生成的项目中,再按照以上index.js配置好需要的packages 以及scripts就完成了整个工具链的集成了。通过这个工具生成的项目就包含了基本的项目资源以及 build、test 功能。
本周学习内容
单元测试工具--Mocha
代码覆盖(code coverage) -- nyc
所有工具与 generator 的集成











评论