搭建 vue2 单元测试环境 (karma+mocha+webpack3)

本贴最后更新于 2357 天前,其中的信息可能已经时移世易

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

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

vue init webpack vuetest

project catalog

文件下载地址 源代码 Github 链接

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 istanbul-instrumenter-loader

3、修改 package.json,在 scripts 里添加启动代码(如果有 unit 就替换掉)

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

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

update index.js

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

改为:

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

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

HelloWord.vue

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

 npm run unit

success log

同时在 test/unit/coverage 生成测试报告。以上就是一个简单的 vue 单元测试实例。最后奉上源代码

深入研究参考文档

Vue.js 学习系列六——Vue 单元测试 Karma+Mocha 学习笔记

karma+webpack 搭建 vue 单元测试环境

karma+mocha+webpack3 搭建 vue2 单元测试环境

作者相关 Vue 文章

基于 Vue2.0 实现后台系统权限控制

vue2.0-基于 elementui 换肤[自定义主题]

Vue 国际化处理 vue-i18n 以及项目自动切换中英文

打赏 衷心的表示感谢 打赏的都是好人一生平安。帅哥美女已经打赏还在等什么。

打赏

  • webpack

    webpack 是一个用于前端开发的模块加载器和打包工具,它能把各种资源,例如 JS、CSS(less/sass)、图片等都作为模块来使用和处理。

    41 引用 • 130 回帖 • 257 关注
  • Vue.js

    Vue.js(读音 /vju ː/,类似于 view)是一个构建数据驱动的 Web 界面库。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。

    264 引用 • 665 回帖 • 1 关注
  • JavaScript

    JavaScript 一种动态类型、弱类型、基于原型的直译式脚本语言,内置支持类型。它的解释器被称为 JavaScript 引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在 HTML 网页上使用,用来给 HTML 网页增加动态功能。

    728 引用 • 1326 回帖
  • karma
    1 引用

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...