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 相关文章推荐
JavaScript 获取用户客户端操作系统版本
Aug 25 Javascript
toString()一个会自动调用的方法
Feb 08 Javascript
jquery下jstree简单应用 - v1.0
Apr 14 Javascript
js取消单选按钮选中并判断对象是否为空
Nov 14 Javascript
Jquery获取和修改img的src值的方法
Feb 17 Javascript
jquery实现炫酷的叠加层自动切换特效
Feb 01 Javascript
JS实现仿QQ聊天窗口抖动特效
May 10 Javascript
JavaScript中的some()方法使用详解
Jun 09 Javascript
VUEJS实战之利用laypage插件实现分页(3)
Jun 13 Javascript
javascript 中null和undefined区分和比较
Apr 19 Javascript
关于vue单文件中引用路径的处理方法
Jan 08 Javascript
axios+Vue实现上传文件显示进度功能
Apr 14 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
十天学会php之第六天
2006/10/09 PHP
PHP和JAVA中的重载(overload)和覆盖(override) 介绍
2012/03/01 PHP
php加速缓存器opcache,apc,xcache,eAccelerator原理与配置方法实例分析
2020/03/02 PHP
phpstorm最新激活码分享亲测phpstorm2020.2.3版可用
2020/11/22 PHP
懒就要懒到底——鼠标自动点击(含时间判断)
2007/02/20 Javascript
JQuery 风格的HTML文本转义
2009/07/01 Javascript
一个简单的Ext.XTemplate的实例代码
2012/03/18 Javascript
nodejs事件的监听与触发的理解分析
2015/02/12 NodeJs
window.open不被拦截的简单实现代码(推荐)
2016/08/04 Javascript
jQuery中$.grep() 过滤函数 数组过滤
2016/11/22 Javascript
使用ionic(选项卡栏tab) icon(图标) ionic上拉菜单(ActionSheet) 实现通讯录界面切换实例代码
2017/10/20 Javascript
Angular模版驱动表单的使用总结
2018/05/05 Javascript
vue中子组件调用兄弟组件方法
2018/07/06 Javascript
JavaScript实现缓动动画
2020/11/25 Javascript
[00:43]DOTA2小紫本全民票选福利PA至宝全方位展示
2014/11/25 DOTA
[01:20]2018DOTA2亚洲邀请赛总决赛战队Mineski晋级之路
2018/04/07 DOTA
[48:28]完美世界DOTA2联赛循环赛FTD vs Magma第二场 10月30日
2020/10/31 DOTA
[03:12]完美世界DOTA2联赛PWL DAY7集锦
2020/11/06 DOTA
[01:03:41]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第三场 2月2日
2021/03/11 DOTA
python机器学习之神经网络实现
2018/10/13 Python
学习python可以干什么
2019/02/26 Python
python的依赖管理的实现
2019/05/14 Python
pandas的qcut()方法详解
2019/07/06 Python
python垃圾回收机制(GC)原理解析
2019/12/30 Python
将tensorflow.Variable中的某些元素取出组成一个新的矩阵示例
2020/01/04 Python
python3用PyPDF2解析pdf文件,用正则匹配数据方式
2020/05/12 Python
python线性插值解析
2020/07/05 Python
纬创Java面试题笔试题
2014/10/02 面试题
迟到检讨书5000字
2014/01/31 职场文书
新闻编辑求职信
2014/04/09 职场文书
企业宣传标语
2014/06/09 职场文书
成绩单评语
2015/01/04 职场文书
变长双向rnn的正确使用姿势教学
2021/05/31 Python
Python还能这么玩之用Python做个小游戏的外挂
2021/06/04 Python
SpringCloud中分析讲解Feign组件添加请求头有哪些坑梳理
2022/06/21 Java/Android
python如何读取和存储dict()与.json格式文件
2022/06/25 Python