什么是冒烟测试?
冒烟测试就是在开发交给测试之前进行的一项预测试,保证主流程是通的,没有什么大问题,再进行后续的测试(功能测试,集成测试等)。所谓冒烟测试,更像是构建版本测试,BVT,主要检测两个方面:
● 构建是否成功
○ 可以通过本地npm run bulid
○ 也可以将编写好的webpack传递给webpack函数,检查是否报错
● 构建成功之后是否有内容输出(测试框架mocha)
○ 查看构建后有js、css等静态资源文件
○ 是否有html文件
将编写好的webpack传递给webpack函数
主要步骤有:在根目录下设计js文件,然后通过path指定到要测试的目录,将要检测的环境的webpack传入进来,webpack会有两个参数,当前webpack的目录,以及一个回调函数,如果有错误信息,可以打印出来,没有的话可以打印出你需要的东西。
const path = require ('path')
const webpack = require ('webpack')
const rimraf = require ('rimraf')//rm rf
process.chdir(path.join(__dirname,'template')) //进入到要构建的项目目录下
//在生成dist文件的时候先删除dist文件 然后将编写好的webpack传递给webpack函数
rimraf('./dist',() => {
const prodConfig = require('../../lib/webpack.prod.config')
webpack(prodConfig,(err,stats) => {
if(err){
console.error(err)
process.exit(2)//传入一个错误码
}
console.log(stats.toString({
colors:true,
modules:false,
children:false
}))
})
})
mocha
链接:https://www.ruanyifeng.com/blog/2015/12/a-mocha-tutorial-of-examples.html
测试用例的编写
在使用测试工具之前,需要写一个测试用例,一般命名为.test.js(表示测试)或者.spec.js(表示规格),比如add.js的测试脚本名字就是add.test.js,下面就是一个简单的测试用例,检查js是否正确:
// add.test.js
var add = require('./add.js');
var expect = require('chai').expect;//这个是一个断言库
describe('加法函数的测试', function() {
it('1 加 1 应该等于 2', function() {
expect(add(1, 1)).to.be.equal(2);//这是断言
});
});
所谓"断言",就是判断源码的实际执行结果与预期结果是否一致,如果不一致就抛出一个错误。面这句断言的意思是,调用add(1, 1),结果应该等于2。
检查是否存在html文件(css,js同样使用这种方法):
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 files')
}
});
});
mocha使用
Mocha默认运行test子目录里面的测试脚本。所以,一般都会把测试脚本放在test目录里面,然后执行mocha就不需要参数了。
mocha命令后面紧跟测试脚本的路径和文件名,可以指定多个测试脚本
mocha add.test.js