继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

搭建 vue2 单元测试环境(karma+mocha+webpack3)

摇曳的蔷薇
关注TA
已关注
手记 280
粉丝 54
获赞 169

从网上找了很多例子关于单元测试,都是如何新建项目的时候的添加单元测试,用vue-cli中怎么添加,但是我的项目已经生成了,不能再一次重新初始化,这时如何添加单元测试,这里面遇到了好多坑,写在这里记录一下心得。

1、用vue-cli生成一个新的项目,把单元测试需要的文件直接复制到你的项目中

vue init webpack vuetest

https://img1.mukewang.com/5d31c93800019b2e03130802.jpg

project catalog

文件下载地址 源代码Github链接

2、安装Karma+Mocha模块,这个模块依赖比较多,我在遇到了坑,解决问题半天发现缺少了某个模块,在这里全部列出需要的模块

npm i -D karma karma-webpack phantomjs-prebuilt karma-phantomjs-launcher karma-phantomjs-shim karma-chrome-launcher karma-sourcemap-loader mocha karma-mocha sinon chai sinon-chai karma-sinon-chai karma-spec-reporter karma-coverage istanbul-instrumenter-loader

3、修改package.json,在scripts里添加启动代码(如果有unit就替换掉)

"unit": "karma start test/unit/karma.conf.js --single-run",

4、修改test目录下的index.js文件,这里是我遇到的最大的坑,解决了半天,总是提示.scss文件出错,下面就是解决的办法。

https://img1.mukewang.com/5d31c94000017ef907050367.jpg

update index.js

const srcContext = require.context('../../src', true, /^\.\/(?!main(\.js)?$)/)

改为:

const srcContext = require.context('../../src', true, /^\.\/(style$) /)

5、可以复制vue-cli生成的项目文件来测试,如下图,并且配置好路由,测试一下单元测试模块是否安装成功

https://img2.mukewang.com/5d31c9430001c5e803460364.jpg

HelloWord.vue

6、在项目中运行下面的命令,启动单元测试

 npm run unit

https://img.mukewang.com/5d31c9470001d26a07220364.jpg

success log

同时在 test/unit/coverage 生成测试报告。以上就是一个简单的 vue 单元测试实例。



作者:nxmin
链接:https://www.jianshu.com/p/f8077005565d


打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP