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 相关文章推荐
神奇的7个jQuery 3D插件整理
Jan 06 Javascript
javascript时间自动刷新实现原理与步骤
Jan 06 Javascript
js获取select标签的值且兼容IE与firefox
Dec 30 Javascript
Javascript常用小技巧汇总
Jun 24 Javascript
JavaScript动态生成二维码图片
Apr 20 Javascript
总结JavaScript三种数据存储方式之间的区别
May 03 Javascript
浅谈js中的引用和复制(传值和传址)
Sep 18 Javascript
JavaScript判断浏览器及其版本信息
Jan 20 Javascript
微信小程序实现跑马灯效果完整代码(附效果图)
May 30 Javascript
elementUI Vue 单个按钮显示和隐藏的变换功能(两种方法)
Sep 04 Javascript
vue 把二维或多维数组转一维数组
Apr 24 Vue.js
JS开发前端团队展示控制器来为成员引流
Aug 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修正代码
2011/05/09 PHP
调试一段PHP程序时遇到的三个问题
2012/01/17 PHP
JavaScript 学习 - 提高篇
2007/02/02 Javascript
在网页里看flash的trace数据的js类
2009/01/10 Javascript
扩展easyui.datagrid,添加数据loading遮罩效果代码
2010/11/02 Javascript
优化innerHTML操作(提高代码执行效率)
2011/08/20 Javascript
jQuery 遍历-nextUntil()方法以及prevUntil()方法的使用介绍
2013/04/26 Javascript
基于jquery的网站幻灯片切换效果焦点图代码
2013/09/15 Javascript
javascript转换静态图片,增加粒子动画效果
2015/05/28 Javascript
jQuery CSS3自定义美化Checkbox实现代码
2016/05/12 Javascript
ionic js 复选框 与普通的 HTML 复选框到底有没区别
2016/06/06 Javascript
半个小时学json(json传递示例)
2016/12/25 Javascript
JavaScript使用简单正则表达式的数据验证功能示例
2017/01/13 Javascript
简单实现bootstrap导航效果
2017/02/07 Javascript
node.js爬虫爬取拉勾网职位信息
2017/03/14 Javascript
jQuery阻止移动端遮罩层后页面滚动
2017/03/15 Javascript
JavaScript事件方法(实例讲解)
2017/06/27 Javascript
基于 Vue.js 2.0 酷炫自适应背景视频登录页面实现方式
2018/01/17 Javascript
Node.Js中实现端口重用原理详解
2018/05/03 Javascript
vue实现同一个页面可以有多个router-view的方法
2018/09/20 Javascript
如何解决js函数防抖、节流出现的问题
2019/06/17 Javascript
在pycharm上mongodb配置及可视化设置方法
2018/11/30 Python
三步实现Django Paginator分页的方法
2019/06/11 Python
python 使用plt画图,去除图片四周的白边方法
2019/07/09 Python
如何使用django的MTV开发模式返回一个网页
2019/07/22 Python
python numpy 反转 reverse示例
2019/12/04 Python
python如何将图片转换素描画
2020/09/08 Python
德国鞋子网上商店:Omoda.de
2017/03/31 全球购物
德国高尔夫商店:Par71.de
2020/11/29 全球购物
青年志愿者先进事迹
2014/05/06 职场文书
节约每一滴水演讲稿
2014/09/09 职场文书
投标人法定代表人授权委托书格式
2014/09/28 职场文书
自我检讨报告
2015/01/28 职场文书
MYSQL 运算符总结
2021/11/11 MySQL
Javascript的promise,async和await的区别详解
2022/03/24 Javascript
mysql使用 not int 子查询隐含陷阱
2022/04/12 MySQL