与前端训练营的日子 -- 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 的集成
评论