Karma入门

作者: 左木北鱼 | 来源:发表于2018-11-26 20:01 被阅读5次

    前言:

    折腾两天,算是折腾完了,踩了一堆坑,算是过来了,记一下。

    本文示例代码:下载

    参考学习文章:Karma入门

    一、Karma介绍:

    Karma是一个基于Node.js的JavaScript测试执行过程管理工具(Test Runner)。该工具可用于测试所有主流Web浏览器,也可集成到CI(Continuous integration)工具,也可和其他代码编辑器一起使用。这个测试工具的一个强大特性就是,它可以监控(Watch)文件的变化,然后自行执行,通过console.log显示测试结果。

    二、安装

    nodejs版本:8.9.1

    npm版本:5.5.1

    1、创建项目目录:

    $ mkdir karma-test

    $ cd karma-test

    $ mkdir test

    说明:test文件夹下放测试代码

    2、创建初始化package.json

    $ npm init

    3、安装karma和karma-cli

    $ npm install karma --save-dev

    $ npm install karma-cli --save-dev

    $ karma start

    karma地址

    karma官方文档

    三、配置

    运行karma init开启配置向导。

    4、配置

    $ karma init

    命令执行完后会生成一个karma.conf.js配置文件,package.json中也加入两个了karma相关依赖项。

    5、安装mocha和karma-mocha

    $ npm install mocha --save-dev

    $ npm install karma-mocha --save-dev

    $ karma start

    安装完成后package.json中会加入相应的依赖项,然后运行karma start一切正常。

    mocha地址

    四、编写测试用例

    6、test/hello.js

    describe('A spec suite', function(){

        it('contains a passing spec', function(){

            console.log('Hello Karma');

        })

    });

    $ karma start   # 【运行karma】

    $ karma run     #【命令行运行测试用例】

    $ karma run -- --grep 'A spec suite'    #【运行特定测试用例】

    在test文件夹下建hello.js,test文件夹即为karma init执行配置的代码存放目录。

    运行特定测试用例:karma run -- --grep 'A spec suite',第一个‘--’表示后面的选项--grep 'A spec suite'是传递给测试框架的选项,这里指mocha。

    相关截图如下:6-*、说明图

    五、测试ES6转换

    7、安装babel

    $ npm install karma-babel-preprocessor --save-dev

    $ npm install babel-preset-env --save-dev

    $ npm install babel-core --save-dev

    test/es6.js

    describe('ES6 spec', function(){

        it('es6 arrows feature', function(){

            let add = (x, y) => x + y;

            console.log(add(1, 2));

        })

    })

    创建 .babelrc,配置转换格式:

    {"presets": ["env"]}

    修改karma.conf.js,编辑preprocessors部分,让所有的js文件都先用babel转换一下。

    preprocessors: {"test/*.js": ['babel']},

    六、集成webpack

    测试用例,引入第三方库lodash

    8、test/use_lodash.js

    import _ from 'lodash';

    describe('Use lodash suite', function () {

        it('fill array', function () {

            let array = [1, 2, 3];

            _.fill(array, 'a');

            console.log(array);

        })

    })

    #运行

    $ karma run -- --grep 'lodash'

    虽然已经转换成了ES5语法,但是由于引入了第三方库lodash,浏览器是没法识别require指令的。

    因此我们需要使用打包工具webpack来将第三库一起打包出来,让浏览器可以运行。

    截图如下:8-*、说明图片

    9、安装webpack和karma-webpack

    $ npm install webpack --save-dev

    $ npm install karma-webpack --save-dev

    然后,修改karma.conf.js, 同样修改preprocessors部分,添加webpack到

    preprocessors: {"test/*.js": ['babel','webpack']},

    配置修改后,重新运行karma start,再运行

    $ karma run -- --grep 'lodash'

    到此结束,如无异常应该运行正确。

    Vue的webpack模板配置

    Karma官方文档

    Webpack使用入门

    流程截图如下:

    2-1、npm init 2-2、生成的package.json文件 3-1、安装karma和karma-cli 3-2、karma start 4-1、配置 4-2、karma依赖项 5-1、安装mocha和karma-mocha并运行karma start 6-1、test/hello.js 6-2、karma run 6-3、karma主页 6-4、karma debug页面 7-1、test/es6.js 7-2、安装babel依赖 7-3、.babelrc配置文件 7-4、karma.conf.js修改 7-5、编译后代码 8-1、安装lodash 8-2、test/use_lodash.js 8-3、运行use_lodash.js报错 8-4、karma debug页面报错require未定义 9-1、安装webpack 9-2、配置karma.conf.js 9-3、重新运行karma start 9-4、karma页面 9-5、karma run -- --grep 'lodash' END:最终的package.json

    相关文章

      网友评论

        本文标题:Karma入门

        本文链接:https://www.haomeiwen.com/subject/qftiqqtx.html