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 相关文章推荐
GWT中复制到剪贴板 js+flash实现复制 兼容性比较好
Mar 07 Javascript
js最简单的拖拽效果实现代码
Sep 24 Javascript
Jquery zTree 树控件异步加载操作
Feb 25 Javascript
JavaScript修改作用域外变量的方法
Mar 25 Javascript
jquery中实现时间戳与日期相互转换
Apr 12 Javascript
javascript设计模式之单体模式学习笔记
Feb 15 Javascript
js+html5实现半透明遮罩层弹框效果
Aug 24 Javascript
最基础的vue.js双向绑定操作
Aug 23 Javascript
jQuery实现的淡入淡出与滑入滑出效果示例
Apr 18 jQuery
Vue弹出菜单功能的实现代码
Sep 12 Javascript
node.js使用yargs处理命令行参数操作示例
Feb 11 Javascript
八种Vue组件间通讯方式合集(推荐)
Aug 18 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
Zend Framework路由器用法实例详解
2016/12/11 PHP
php判断电子邮件是否正确方法
2018/12/04 PHP
ThinkPHP3.2.3框架实现执行原生SQL语句的方法示例
2019/04/03 PHP
写出更好的JavaScript之undefined篇(上)
2009/11/22 Javascript
Extjs gridpanel 出现横向滚动条问题的解决方法
2011/07/04 Javascript
用js来刷新当前页面保留参数的具体实现
2013/12/23 Javascript
js获取页面description的方法
2015/05/21 Javascript
JavaScript实现添加及删除事件的方法小结
2015/08/04 Javascript
js实现文本框宽度自适应文本宽度的方法
2015/08/13 Javascript
Jquery根据浏览器窗口改变调整大小的方法
2017/02/07 Javascript
js监听html页面的上下滚动事件方法
2018/09/11 Javascript
webpack配置proxyTable时pathRewrite无效的解决方法
2018/12/13 Javascript
JS写滑稽笑脸运动效果
2020/05/28 Javascript
Python 类与元类的深度挖掘 I【经验】
2016/05/06 Python
利用python编写一个图片主色转换的脚本
2017/12/07 Python
Python实战小程序利用matplotlib模块画图代码分享
2017/12/09 Python
python实现12306抢票及自动邮件发送提醒付款功能
2018/03/08 Python
使用turtle绘制五角星、分形树
2019/10/06 Python
如何使用scrapy中的ItemLoader提取数据
2020/09/30 Python
python 实现端口扫描工具
2020/12/18 Python
CSS3 实用技巧:实现黑白图像效果示例代码
2013/07/11 HTML / CSS
HTML5的表单(绝对特别强大的功能)使用示例
2013/06/20 HTML / CSS
描述一下JVM加载class文件的原理机制
2013/12/08 面试题
业务员岗位职责范本
2013/12/15 职场文书
2014学年自我鉴定
2014/02/23 职场文书
年会搞笑主持词串词
2014/03/24 职场文书
综合内勤岗位职责
2014/04/14 职场文书
巴西世界杯32强口号
2014/06/05 职场文书
关于旅游的活动方案
2014/08/15 职场文书
2014年“向国旗敬礼”网上签名寄语活动方案
2014/09/27 职场文书
民主生活会主持词
2015/07/01 职场文书
感谢信
2019/04/11 职场文书
Nginx tp3.2.3 404问题解决方案
2021/03/31 Servers
详解PHP服务器如何在有限的资源里最大提升并发能力
2021/05/25 PHP
CSS font-variation 可变字体的魅力(实例详解)
2022/03/03 HTML / CSS
Python数据结构之队列详解
2022/03/21 Python