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 相关文章推荐
prototype Element学习笔记(Element篇三)
Oct 26 Javascript
js 编写规范
Mar 03 Javascript
JQuery将文本转化成JSON对象需要注意的问题
May 09 Javascript
javascript静态页面传值的三种方法分享
Nov 12 Javascript
avalonjs制作响应式瀑布流特效
May 06 Javascript
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
Dec 14 Javascript
JavaScript+Html5实现按钮复制文字到剪切板功能(手机网页兼容)
Mar 30 Javascript
JS实现加载和读取XML文件的方法详解
Apr 24 Javascript
基于layui数据表格以及传数据的方式
Aug 19 Javascript
Vue中CSS动画原理的实现
Feb 13 Javascript
JS实现计算小于非负数n的素数的数量算法示例
Feb 26 Javascript
VUE动态生成word的实现
Jul 26 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下IIS6/Apache2.2.4+MySQL5.2+PHP5.2.1安装配置方法
2007/05/03 PHP
php合并数组array_merge函数运算符加号与的区别
2008/10/31 PHP
php学习笔记 面向对象的构造与析构方法
2011/06/13 PHP
JS控件autocomplete 0.11演示及下载 1月5日已更新
2007/01/09 Javascript
用javascript父窗口控制只弹出一个子窗口
2007/04/10 Javascript
javascript中length属性的探索
2011/07/31 Javascript
js实现从数组里随机获取元素
2015/01/12 Javascript
浅谈JavaScript数据类型及转换
2015/02/28 Javascript
JS的框架Polymer中的dom-if和is属性使用说明
2015/07/29 Javascript
JS实现网页标题栏显示当前时间和日期的完整代码
2015/11/02 Javascript
详解JS数据类型的值拷贝函数(深拷贝)
2017/07/13 Javascript
微信小程序入门之广告条实现方法示例
2018/12/05 Javascript
写一个Vue Popup组件
2019/02/25 Javascript
JS中封装axios来管控api的2种方式
2019/09/11 Javascript
node.js使用fs读取文件出错的解决方案
2019/10/23 Javascript
vue更改数组中的值实例代码详解
2020/02/07 Javascript
js+css3实现简单时钟特效
2020/09/13 Javascript
[51:39]DOTA2-DPC中国联赛 正赛 Magma vs LBZS BO3 第二场 2月7日
2021/03/11 DOTA
使用Python发送邮件附件以定时备份MySQL的教程
2015/04/25 Python
python3中dict(字典)的使用方法示例
2017/03/22 Python
python实现百万答题自动百度搜索答案
2018/01/16 Python
numpy中的delete删除数组整行和整列的实例
2018/05/09 Python
python将字符串以utf-8格式保存在txt文件中的方法
2018/10/30 Python
Python异常模块traceback用法实例分析
2019/10/22 Python
Python实现异步IO的示例
2020/11/05 Python
详解python的变量缓存机制
2021/01/24 Python
基于HTML5+Webkit实现树叶飘落动画
2017/12/28 HTML / CSS
世界上最大的餐具公司:Oneida
2016/12/17 全球购物
英国女性化妆品收纳和家具网站:Beautify
2019/12/07 全球购物
Linux常见面试题
2016/10/04 面试题
英语专业学子个人的自我评价
2013/10/02 职场文书
关于环保的建议书400字
2014/03/12 职场文书
个人借款担保书
2014/04/02 职场文书
三年级学生期末评语
2014/12/26 职场文书
中标通知书格式
2015/04/17 职场文书
2019年公司快递收发管理制度模板
2019/11/20 职场文书