karma
在gulp的体系里面使用karma进行单元测试。
gulp已经拥有了karma需要的机制,就是注册任务的时候可以提供一个回调函数,回调函数的参数是一个状态终结器。因此,不需要额外安装karma插件来运行karma,直接使用karma就可以了。
var gulp = require('gulp');
var Server = require('karma').Server;
/**
* Run test once and exit
*/
gulp.task('test', function (done) {
new Server({
configFile: __dirname + '/karma.conf.js',
singleRun: true
}, done).start();
});
原理也很简单,执行gulp test
的时候,调用karma进行测试,karma的配置全部都放在karma.conf.js里面,实际上这个过程可以看做是一个触发过程,跟在命令行执行karma命令一样。
唯一比较有趣的是,可以直接给karma service传done这个回调函数的参数(实际上也是个函数),一旦done()被执行,那么test任务就结束了,我们所感知到的,就是命令行里面这个task结束。
要了解更多的测试的信息,你还得去学习karma,这里是官网。
而且前端的单元测试比较复杂,因为前端还要涉及到浏览器等问题,希望你能够为这个问题贡献内容。