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 相关文章推荐
js字符串的各种格式的转换 ToString,Format
Aug 08 Javascript
JQuery触发事件例如click
Sep 11 Javascript
一个js控制的导航菜单实例代码
Dec 03 Javascript
Javascript中arguments和arguments.callee的区别浅析
Apr 24 Javascript
JS右下角广告窗口代码(可收缩、展开及关闭)
Sep 04 Javascript
jQuery移动web开发之页面跳转和加载外部页面的实现
Dec 04 Javascript
AngularJs Managing Service Dependencies详解
Sep 02 Javascript
详解webpack进阶之插件篇
Jul 06 Javascript
JS+HTML5实现图片在线预览功能
Jul 22 Javascript
bootstrap datepicker插件默认英文修改为中文
Jul 28 Javascript
解决VUE框架 导致绑定事件的阻止冒泡失效问题
Feb 24 Javascript
d3.js 地铁轨道交通项目实战
Nov 27 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如何实现只替换一次或N次
2015/10/29 PHP
微信支付开发交易通知实例
2016/07/12 PHP
php使用curl伪造来源ip和refer的方法示例
2018/05/08 PHP
PHP实现文件上传与下载
2020/08/28 PHP
jQuery插件 tabBox实现代码
2010/02/09 Javascript
jQuery事件绑定.on()简要概述及应用
2013/02/07 Javascript
JQuery中关于jquery.js与jquery.min.js的比较探讨
2013/05/15 Javascript
多引号嵌套的变量命名的问题
2014/05/09 Javascript
js 获取时间间隔实现代码
2014/05/12 Javascript
jQuery实现的感应鼠标悬停图片色彩渐显效果
2015/03/03 Javascript
js获取元素下的第一级子元素的方法(推荐)
2017/03/05 Javascript
JavaScript递归算法生成树形菜单
2017/08/15 Javascript
Vue的百度地图插件尝试使用
2017/09/06 Javascript
js实现轮播图的两种方式(构造函数、面向对象)
2017/09/30 Javascript
微信小程序实现YDUI的ScrollNav组件
2018/02/02 Javascript
vue页面跳转后返回原页面初始位置方法
2018/02/11 Javascript
webpack打包非模块化js的方法
2018/10/24 Javascript
Vue设置长时间未操作登录自动到期返回登录页
2020/01/22 Javascript
JavaScript对象原型链原理解析
2020/01/22 Javascript
JS实现鼠标按下拖拽效果
2020/07/23 Javascript
Openlayers实现测量功能
2020/09/25 Javascript
解决vue scoped html样式无效的问题
2020/10/24 Javascript
新手该如何学python怎么学好python?
2008/10/07 Python
Python利用ElementTree模块处理XML的方法详解
2017/08/31 Python
利用Python写一个爬妹子的爬虫
2018/06/08 Python
使用python画社交网络图实例代码
2019/07/10 Python
django rest framework 实现用户登录认证详解
2019/07/29 Python
Python3.7下安装pyqt5的方法步骤(图文)
2020/05/12 Python
python实现学生管理系统开发
2020/07/24 Python
python利用文件时间批量重命名照片和视频
2021/02/09 Python
HTML5 Canvas如何实现纹理填充与描边(Fill And Stroke)
2013/07/15 HTML / CSS
加拿大花店:1800Flowers.ca
2016/11/16 全球购物
微软中国官方旗舰店:销售Surface、Xbox One、笔记本电脑、Office
2018/07/23 全球购物
解释一下Windows的消息机制
2014/01/30 面试题
北京天润融通.net面试题笔试题
2012/02/20 面试题
委托书怎么写
2014/07/31 职场文书