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 相关文章推荐
wordpress之js库集合研究介绍
Aug 17 Javascript
jquery+ajax每秒向后台发送请求数据然后返回页面的代码
Jan 17 Javascript
js使用onmousemove和onmouseout获取鼠标坐标的方法
Mar 31 Javascript
jQuery控制cookie过期时间的方法
Apr 07 Javascript
JavaScript中解析JSON数据的三种方法
Jul 03 Javascript
jQuery代码性能优化的10种方法
Jun 21 Javascript
在knockoutjs 上自己实现的flux(实例讲解)
Dec 18 Javascript
vue ssr服务端渲染(小白解惑)
Nov 10 Javascript
JavaScript享元模式原理与用法实例详解
Mar 09 Javascript
vue打包静态资源后显示空白及static文件路径报错的解决
Sep 02 Javascript
如何手动实现一个 JavaScript 模块执行器
Oct 16 Javascript
解决vue props传Array/Object类型值,子组件报错的情况
Nov 07 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
在Windows系统上安装PHP运行环境文字教程
2010/07/19 PHP
php使用escapeshellarg时中文被过滤的解决方法
2016/07/10 PHP
php reset() 函数指针指向数组中的第一个元素并输出实例代码
2016/11/21 PHP
浅析PHP中的闭包和匿名函数
2017/12/25 PHP
常见表单重复提交问题整理及解决方法
2013/11/13 Javascript
jquery实现的下拉和收缩效果示例
2014/08/21 Javascript
jQuery采用连缀写法实现的折叠菜单效果
2015/09/18 Javascript
JS面向对象(3)之Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法
2016/02/25 Javascript
js通过classname来获取元素的方法
2016/11/24 Javascript
JavaScript 网页中实现一个计算当年还剩多少时间的倒数计时程序
2017/01/25 Javascript
Bootstrap modal 多弹窗之叠加显示不出弹窗问题的解决方案
2017/02/23 Javascript
微信小程序 template模板详解及实例代码
2017/03/09 Javascript
JScript实现地址选择功能
2017/08/15 Javascript
vue封装一个简单的div框选时间的组件的方法
2019/01/06 Javascript
JavaScript实现刮刮乐效果
2020/11/01 Javascript
[06:13]DOTA2进化论(修改版)
2013/10/08 DOTA
安装Python和pygame及相应的环境变量配置(图文教程)
2017/06/04 Python
pandas object格式转float64格式的方法
2018/04/10 Python
简单了解python变量的作用域
2019/07/30 Python
pytorch实现onehot编码转为普通label标签
2020/01/02 Python
Pytorch生成随机数Tensor的方法汇总
2020/09/09 Python
python实现测试工具(二)——简单的ui测试工具
2020/10/19 Python
如何一键升级Python所有包
2020/11/05 Python
美国知名珠宝首饰品牌:Gemvara
2017/10/06 全球购物
BLACKMORES澳洲官网:澳大利亚排名第一的保健品牌
2018/09/27 全球购物
Paul Smith英国官网:英国国宝级时装品牌
2019/03/21 全球购物
美国克罗格超市在线购物:Kroger
2019/06/21 全球购物
Lentiamo比利时:便宜的隐形眼镜
2020/02/14 全球购物
高中同学聚会邀请函
2014/01/11 职场文书
企业诚信承诺书
2014/05/23 职场文书
副总经理岗位职责范本
2015/04/08 职场文书
2016毕业实习单位评语大全
2015/12/01 职场文书
2019年手机市场的调研报告2篇
2019/10/10 职场文书
《自然之道》读后感3篇
2019/12/17 职场文书
Python中super().__init__()测试以及理解
2021/12/06 Python
Ubuntu18.04下QT开发Android无法连接设备问题解决实现
2022/06/01 Java/Android