webpack系列笔记(8)冒烟、单元测试和测试覆盖率

冒烟测试(smoke testing):

冒烟测试是指对提交测试的软件在进行详细深入的测试之前而进行的预测试,这种预测试的主要目的是暴露导致软件需要重新的基本功能失效等严重问题。

 

单元测试的工具:

mocha

 

Use // eslint-disable-next-line to ignore the next line.

Use /* eslint-disable */ to ignore all warnings in a file.

const glob = require('glob-all');

describe('Checking generated html files', () => { it('should generate html files', (done) => {

const files = glob.sync([ './dist/index.html', './dist/search.html' ])

if (files.length > 0) { done(); }

else { throw new Error('no html file generated.'); } }) })

 

const path = require('path');

const webpack = require('webpack');

const rimraf = require('rimraf');

const Mocha = require('mocha');

const mocha = new Mocha();

process.chdir(path.join(__dirname, 'template'));

//进入到template目录

rimraf('./dist', () => { const prodConfig = require('../../lib/webpack.prod.js');

webpack(prodConfig, (err, stats) => { if ( err ) { console.log(err); process.exit(2); }

console.log(stats.toString({ colors: true, modules: false, children: false }))

console.log('Webpack build success, begin mocha test.');

mocha.addFile(path.join(__dirname, 'css-js-test.js'));

mocha.addFile(path.join(__dirname, 'html-test.js')); mocha.run(); }) })

 

 

单元测试:

 

单元测试的接入:

1. 安装mocha + chai

npm i mocha chai -D

 

2. 新建test目录,并增加xx.test.js文件

 

3. 在package.json中的scripts字段中添加test命令:

"scripts": {

"test": "node_modules/mocha/bin/_mocha"

}

 

4. 执行测试命令:

npm run test

 

 

持续集成的作用:

 

优点:

1. 快速发现错误

2. 防止分支大幅偏离主干

 

核心措施是:代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。

 

目前比较流行的CI: travis CI, Circle CI, jenkins...

 

接入travis CI:

1. https:// travis-ci.org/ 使用github账号登录

2. 在https:// travis-ci.org/account/responsitories为项目开启

3. 项目根目录下创建.travis.yml

 

.travis.yml文件内容:

 

发布npm:

添加用户: npm adduser

升级版本:

升级补丁版本号: npm version patch

升级小版本号:npm version minor

升级大版本号:npm version major

升级版本:npm publish

 

GIt规范和Changelog生成:

 

提交格式要求:

 

本地开发阶段增加precommit钩子:

1. 安装husky npm i husky -D

2. 通过commitmsg钩子校验信息

 

"scripts": { "commitmsg": "validate-commit-msg", "changelog":"conventional-changelog -p angular -i CHANGELOG.md -s -r 0" }, "devDependencies":{ "validate-commit-msg":"^2.11.1", "conventional-changelog-cli":"^1.2.0", "husky":"^0.13.1" }

 

遵守semver规范的优势:

 

语义化版本规范(Semantic Versioning):

 

先行版本号:

 

例如:

16.4.0-alpha.3174632

16.0.0-beta.4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值