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 相关文章推荐
Jqyery中同等与js中windows.onload的应用
May 10 Javascript
原生Js实现元素渐隐/渐现(原理为修改元素的css透明度)
Jun 24 Javascript
纯javascript实现简单下拉刷新功能
Mar 13 Javascript
JS折半插入排序算法实例
Dec 02 Javascript
JS实现title标题栏文字不间断滚动显示效果
Sep 07 Javascript
利用pm2部署多个node.js项目的配置教程
Oct 22 Javascript
AngularJS中scope的绑定策略实例分析
Oct 30 Javascript
微信小程序实现跑马灯效果
Oct 21 Javascript
vue表单验证你真的会了吗?vue表单验证(form)validate
Apr 07 Javascript
JS实现判断移动端PC端功能
Feb 21 Javascript
解决Vue项目中tff报错的问题
Oct 21 Javascript
jquery插件实现搜索历史
Apr 24 jQuery
基于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 curl 并发最佳实践代码分享
2012/09/05 PHP
Laravel 5 学习笔记
2015/03/06 PHP
PHP页面转UTF-8中文编码乱码的解决办法
2015/10/20 PHP
php foreach如何跳出两层循环(详解)
2016/11/05 PHP
PHP用正则匹配form表单中所有元素的类型和属性值实例代码
2017/02/28 PHP
解决Laravel5.x的php artisan migrate数据库迁移创建操作报错SQLSTATE[42000]
2020/04/06 PHP
JQuery AJAX实现目录浏览与编辑的代码
2008/10/21 Javascript
jQuery 对象中的类数组操作
2009/04/27 Javascript
jQuery动态添加 input type=file的实现代码
2012/06/14 Javascript
jquery默认校验规则整理
2014/03/24 Javascript
JavaScript Promise启示录
2014/08/12 Javascript
javascript实现表格排序 编辑 拖拽 缩放
2015/01/02 Javascript
JavaScript实现页面跳转的方式汇总
2016/05/16 Javascript
jQuery实现的弹幕效果完整实例
2017/09/06 jQuery
ES6 Iterator接口和for...of循环用法分析
2019/07/31 Javascript
解决使用layui对select append元素无效或者未及时更新的问题
2019/09/18 Javascript
webpack DllPlugin xxx is not defined解决办法
2019/12/13 Javascript
javascript实现蒙版与禁止页面滚动
2020/01/11 Javascript
Paypal支付不完全指北
2020/06/04 Javascript
解决vue请求接口第一次成功,第二次失败问题
2020/09/08 Javascript
nuxt 页面路由配置,主页轮播组件开发操作
2020/11/05 Javascript
Python查询阿里巴巴关键字排名的方法
2015/07/08 Python
Python实现的HMacMD5加密算法示例
2018/04/03 Python
使用python实现简单五子棋游戏
2019/06/18 Python
django基于cors解决跨域请求问题详解
2019/08/06 Python
python中np是做什么的
2020/07/21 Python
举例详解CSS3中的Transition
2015/07/15 HTML / CSS
HealthElement海外旗舰店:新西兰大卖场
2018/02/23 全球购物
Travelstart沙特阿拉伯:廉价航班、豪华酒店和实惠的汽车租赁优惠
2019/04/06 全球购物
Servlet都有哪些方法?主要作用是什么?
2014/03/04 面试题
经典优秀个人求职信分享
2013/12/12 职场文书
求职信范文大全
2014/05/26 职场文书
汽车检测与维修专业求职信
2014/07/04 职场文书
领导工作表现评语
2015/01/04 职场文书
环保建议书范文
2015/09/14 职场文书
面试被问select......for update会锁表还是锁行
2021/11/11 MySQL