vue项目中添加单元测试的方法


Posted in Javascript onJuly 21, 2018

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

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

vue init webpack vuetest

vue项目中添加单元测试的方法

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

3、修改package.json,在scripts里添加启动代码

"unit": "karma start test/unit/karma.conf.js --single-run",

4、修改test目录下的index.js文件,这里是我遇到的最大的坑,解决了半天,总是提示.scss文件出错,下面就是解决的办法。

vue项目中添加单元测试的方法

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

改为:

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

应该是karma为了测试代码的覆盖率,原本加载了除main.js的所有文件,我改为把style去除

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

vue项目中添加单元测试的方法

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

npm run unit

vue项目中添加单元测试的方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
iframe 父窗口和子窗口相互的调用方法集锦
Dec 15 Javascript
js日历功能对象
Jan 12 Javascript
jQuery.fn和jQuery.prototype区别介绍
Oct 05 Javascript
js 实现菜单上下显示附效果图
Nov 21 Javascript
js完美实现@提到好友特效(兼容各大浏览器)
Mar 16 Javascript
JavaScript中对JSON对象的基本操作示例
May 21 Javascript
json的使用小结
Jun 08 Javascript
Bootstrap Fileinput 4.4.7文件上传实例详解
Jul 25 Javascript
React 无状态组件(Stateless Component) 与高阶组件
Aug 14 Javascript
微信小程序动画组件使用解析,类似vue,且更强大
Aug 01 Javascript
JS脚本实现定时到网站上签到/签退功能
Apr 22 Javascript
Vue实现菜单切换功能
Nov 08 Javascript
基于Vue实现关键词实时搜索高亮显示关键词
Jul 21 #Javascript
jQuery实现的点击按钮改变样式功能示例
Jul 21 #jQuery
jQuery实现输入框的放大和缩小功能示例
Jul 21 #jQuery
jQuery实现table表格信息的展开和缩小功能示例
Jul 21 #jQuery
浅谈vue父子组件怎么传值
Jul 21 #Javascript
通过webpack引入第三方库的方法
Jul 20 #Javascript
详解Koa中更方便简单发送响应的方式
Jul 20 #Javascript
You might like
教你如何把一篇文章按要求分段
2006/10/09 PHP
oracle资料库函式库
2006/10/09 PHP
phpmailer中文乱码问题的解决方法
2014/04/22 PHP
php获取根域名方法汇总
2014/10/28 PHP
js实现身份证号码验证的简单实例
2014/02/19 Javascript
纯JS实现根据CSS的class选择DOM
2014/03/22 Javascript
table insertRow、deleteRow定义和用法总结
2014/05/14 Javascript
jquery 实现返回顶部功能
2014/11/17 Javascript
Javascript数据结构与算法之列表详解
2015/03/12 Javascript
jQuery zTree加载树形菜单功能
2016/02/25 Javascript
jQuery根据name属性进行查找的用法分析
2016/06/23 Javascript
结合代码图文讲解JavaScript中的作用域与作用域链
2016/07/05 Javascript
关于微信jssdk实现多图片上传的一点心得分享
2016/12/13 Javascript
angularjs ui-router中路由的二级嵌套
2017/03/10 Javascript
详解webpack分离css单独打包
2017/06/21 Javascript
微信JSSDK调用微信扫一扫功能的方法
2017/07/25 Javascript
vue通过路由实现页面刷新的方法
2018/01/25 Javascript
详解VS Code使用之Vue工程配置format代码格式化
2019/03/20 Javascript
解决Vue打包后访问图片/图标不显示的问题
2019/07/25 Javascript
Vue基于iview实现登录密码的显示与隐藏功能
2020/03/06 Javascript
jQuery+ajax实现用户登录验证
2020/09/13 jQuery
iview实现动态表单和自定义验证时间段重叠
2021/01/10 Javascript
Python调用C/C++动态链接库的方法详解
2014/07/22 Python
python学习之第三方包安装方法(两种方法)
2015/07/30 Python
python实现windows壁纸定期更换功能
2019/01/21 Python
基于树莓派的语音对话机器人
2019/06/17 Python
Python获取好友地区分布及好友性别分布情况代码详解
2019/07/10 Python
拥有超过850家商店的美国在线派对商店:Party City
2018/10/21 全球购物
自我鉴定模板
2013/10/29 职场文书
寒假实习自荐信
2014/01/26 职场文书
小学安全教育材料
2014/02/17 职场文书
乡镇民主生活会发言材料
2014/10/20 职场文书
2014年大班保育员工作总结
2014/12/02 职场文书
python编程实现清理微信重复缓存文件
2021/11/01 Python
排查并解决Oracle sysaux表空间异常增长
2022/04/20 Oracle
Nginx代理Redis哨兵主从配置的实现
2022/07/15 Servers