vue2单元测试环境搭建


Posted in Javascript onMay 24, 2018

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

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

vue init webpack vuetest

vue2单元测试环境搭建

文件下载地址 源代码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文件出错,下面就是解决的办法。

vue2单元测试环境搭建

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

改为:

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

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

vue2单元测试环境搭建

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

npm run unit

vue2单元测试环境搭建

同时在 test/unit/coverage 生成测试报告。以上就是一个简单的 vue 单元测试实例。最后奉上源代码https://github.com/mgbq/vue-permission

Javascript 相关文章推荐
jQuery 连续列表实现代码
Dec 21 Javascript
JSON.parse 解析字符串出错的解决方法
Jul 08 Javascript
浅谈javascript 归并方法
Jan 21 Javascript
javascript中offset、client、scroll的属性总结
Aug 13 Javascript
Vue.js开发环境快速搭建教程
Mar 17 Javascript
十分钟带你快速了解React16新特性
Nov 10 Javascript
利用Angular2 + Ionic3开发IOS应用实例教程
Jan 15 Javascript
浅谈super-vuex使用体验
Jun 25 Javascript
解决Layui选择全部,换页checkbox复选框重新勾选的问题方法
Aug 14 Javascript
简述vue路由打开一个新的窗口的方法
Nov 29 Javascript
Vue源码学习之关于对Array的数据侦听实现
Apr 23 Javascript
游戏开发中如何使用CocosCreator进行音效处理
Apr 14 Javascript
Vue+mui实现图片的本地缓存示例代码
May 24 #Javascript
vue组件name的作用小结
May 23 #Javascript
linux 后台运行node服务指令方法
May 23 #Javascript
node.js部署之启动后台运行forever的方法
May 23 #Javascript
jquery引入外部CDN 加载失败则引入本地jq库
May 23 #jQuery
jQuery实现form表单序列化转换为json对象功能示例
May 23 #jQuery
让Vue也可以使用Redux的方法
May 23 #Javascript
You might like
第六章 php目录与文件操作
2011/12/30 PHP
深入理解PHP中的Session和Cookie
2013/06/21 PHP
JavaScript创建命名空间的5种写法
2014/06/24 PHP
解读PHP中上传文件的处理问题
2016/05/29 PHP
在php7中MongoDB实现模糊查询的方法详解
2017/05/03 PHP
php验证码生成器
2017/05/24 PHP
聊聊 PHP 8 新特性 Attributes
2020/08/19 PHP
jquery.ui.draggable中文文档
2009/11/24 Javascript
JavaScript对象学习经验整理
2013/10/12 Javascript
jquery 实现input输入什么div图层显示什么
2014/06/15 Javascript
jquery让指定的元素闪烁显示的方法
2015/03/17 Javascript
setTimeout内不支持jquery的选择器的解决方案
2015/04/28 Javascript
js操作table元素实现表格行列新增、删除技巧总结
2015/11/18 Javascript
javascript DIV实现跟随鼠标移动
2020/03/19 Javascript
微信小程序 window_x64环境搭建
2016/09/30 Javascript
微信小程序 图片等比例缩放(图片自适应屏幕)
2016/11/16 Javascript
javascript 封装Date日期类实例详解
2017/05/28 Javascript
JS装饰器函数用法总结
2018/04/21 Javascript
一步步教你利用Docker设置Node.js
2018/11/20 Javascript
微信小程序实现文字从右向左无限滚动
2020/11/18 Javascript
了解重排与重绘
2019/05/29 Javascript
解决vue-cli webpack打包开启Gzip 报错问题
2019/07/24 Javascript
[05:17]DOTA2誓师:今天我们在这里 明天TI4等我!
2014/03/26 DOTA
用virtualenv建立多个Python独立虚拟开发环境
2017/07/06 Python
PyQT实现多窗口切换
2018/04/20 Python
django rest framework 数据的查找、过滤、排序的示例
2018/06/25 Python
Django基础知识与基本应用入门教程
2018/07/20 Python
Python猴子补丁知识点总结
2020/01/05 Python
python实现飞行棋游戏
2020/02/05 Python
美体小铺英国官网:The Body Shop英国
2017/01/24 全球购物
店长岗位的工作内容
2013/11/12 职场文书
小学生安全保证书
2014/02/01 职场文书
光信息科学与技术专业职业生涯规划
2014/03/13 职场文书
关于晚自习早退的检讨书
2014/09/13 职场文书
创业计划书之零食店(进口)
2019/09/24 职场文书
nginx常用配置conf的示例代码详解
2022/03/21 Servers