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 相关文章推荐
IE中createElement需要注意的一个问题
Jul 13 Javascript
说明你的Javascript技术很烂的五个原因
Apr 26 Javascript
js 采用delete实现继承示例代码
May 20 Javascript
jQuery css() 方法动态修改CSS属性
Sep 25 Javascript
jQuery命名空间与闭包用法示例
Jan 12 Javascript
滚动条的监听与内容随着滚动条动态加载的实现
Feb 08 Javascript
关于前后端json数据的发送与接收详解
Jul 30 Javascript
JavaScript 中的 this 工作原理
Jun 20 Javascript
JQuery通过后台获取数据遍历到前台的方法
Aug 13 jQuery
深入浅析golang zap 日志库使用(含文件切割、分级别存储和全局使用等)
Feb 19 Javascript
vue下拉刷新组件的开发及slot的使用详解
Dec 23 Vue.js
Rust中的Struct使用示例详解
Aug 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
UCenter Home二次开发指南
2009/05/28 PHP
php中用socket模拟http中post或者get提交数据的示例代码
2013/08/08 PHP
php中实现精确设置session过期时间的方法
2014/07/17 PHP
php中current、next与reset函数用法实例
2014/11/17 PHP
php简单实现文件或图片强制下载的方法
2016/12/06 PHP
PHP中Notice错误常见解决方法
2017/04/28 PHP
JavaScript接口实现代码 (Interfaces In JavaScript)
2010/06/11 Javascript
JavaScript对象和字串之间的转换实例探讨
2013/04/21 Javascript
javascript 树形导航菜单实例代码
2013/08/13 Javascript
js取消单选按钮选中示例代码
2013/11/14 Javascript
nodejs npm install全局安装和本地安装的区别
2014/06/05 NodeJs
谷歌浏览器调试JavaScript小技巧
2014/12/29 Javascript
Angular用来控制元素的展示与否的原生指令介绍
2015/01/07 Javascript
Angularjs基础知识及示例汇总
2015/01/22 Javascript
js完美实现@提到好友特效(兼容各大浏览器)
2015/03/16 Javascript
jquery实现Li滚动时滚动条自动添加样式的方法
2015/08/10 Javascript
跟我学习javascript的执行上下文
2015/11/18 Javascript
实例解析jQuery插件EasyUI最常用的表单验证规则
2015/11/29 Javascript
一篇文章带你从零快速上手Rollup
2020/09/07 Javascript
react使用antd表单赋值,用于修改弹框的操作
2020/10/29 Javascript
[36:52]DOTA2真视界:基辅特锦赛总决赛
2017/05/21 DOTA
利用Python的Django框架生成PDF文件的教程
2015/07/22 Python
Python爬虫框架Scrapy常用命令总结
2018/07/26 Python
Python判断以什么结尾以什么开头的实例
2018/10/27 Python
详解python中@的用法
2019/03/27 Python
Python之Numpy的超实用基础详细教程
2019/10/23 Python
Python request操作步骤及代码实例
2020/04/13 Python
方太官方网上商城:销售方太抽油烟机、燃气灶、消毒柜等
2017/01/17 全球购物
重新定义牛仔布,100美元以下:Warp + Weft
2018/07/25 全球购物
外企测试工程师面试题
2015/02/01 面试题
机械制造与自动化应届生求职信
2013/11/16 职场文书
2014年会演讲稿范文
2014/01/06 职场文书
竞选学生会主席演讲稿
2014/04/24 职场文书
2014年度个人工作总结范文
2015/03/09 职场文书
《烈火英雄》观后感:致敬和平时代的英雄
2019/11/11 职场文书
奇妙的 CSS shapes(CSS图形)
2021/04/05 HTML / CSS