最近在搞Jest单元测试,如何在vue中安装和使用jest我就不说了,前一篇文章简单的说了一下在使用jest时遇到的一些问题,但是我觉得并没有真正的解决的很好。后面会在学习过程中更新前面的那篇文章,加入后续遇到的问题以及解决问题的方法,持续的做一个记录。

  好了,废话不多说,咱们开始今天的内容吧。因为之前使用jest时候的项目是移植过来的项目,因为复杂的环境以及外部文件引入的等等等等的问题。采用的方式就是新建一个空的vue-cli生成的用jest来做单元测试的项目,这就导致了测试环境的配置是极为脆弱的。而且还有十分大的隐患。但是又没办法一下子解决。所以,我想在这篇文章中,整理记录一下jest的配置参数的用法等。

  jest的配置文件是单独生成在unit文件夹下的一个独立文件,并没有和vue-cli生成的webpack构建的环境相关联。所以个人感觉这样更清爽一些吧。

一、默认配置文件参数的意义

  我们先来看一张图,然后我一一介绍说明他们都是用来做什么的:

  这是当前版本的vue-cli生成的jest.conf.js的配置文件,我们可以在package.json中的配置项里看到,我们在npm run unit 的时候,真正运行的就是这个文件的配置。

  前面的文章说过了,要添加一个testURL来解决找不到localstorage的问题。并且修改mapCorverage为collectCorverage,前者是旧版本的参数。

  那我们接下来一一介绍每个参数的配置及其含义。

  rootDir:其实就是指整个项目的根目录,也就是最外层的目录。这里多句嘴,再解释下path.resolve(__dirname,"../../")的意义,他最终返回的结果是该问见所在的根目录,简单来说__dirname返回的是当前目录,再向上两层,就是整个项目的根目录了。

  moduleFileExtensions:这个文档解释的是“模块使用的文件扩展名数组,从左往右查找这些文件”。实际上我的理解,这个参数的意义就是让jest知道你需要测试覆盖的文件的扩展名都是什么。

  moduleNameMapper:一种正则表达式到模块名的映射,匹配到的文件的内容可以是空的。我理解的是,可以通过该参数,来mock一些图片,css等静态资源文件,因为我们在测试的时候实际上是不太需要这些文件的,但是有需要引入它作为环境上的依赖。

  transform:简单来说就是转换器,正则匹配到的文件可以通过对应模块的转换器来解决一些未来版本语法时可以使用它。通过正则来匹配文件,为匹配到的文件使用对应的模块。

  snapshotSerializers:快照测试的插件,会生成测试文件的一个快照版本,可以再package.json中查看安装的快照插件。

  setupFiles:运行一些测试环境所要依赖的模块的路径列表,比如引入vue,elementUI等插件的列表,以给测试提供完整的环境。

  collectCoverage:是否收集测试时的覆盖率信息。

  testURL:该选项是设置jsdom环境的参数。

  coverageDirectory:jest输出覆盖率信息文件的目录。

  collectCoverageFrom:为数组中匹配的文件收集覆盖率信息,即使并没有为该文件写相关的测试代码,需要将collectCoverage设置为true,或者通过--corverage参数来调用jest。

  这样我们就解释完了基础配置的参数,学习过后,我们对jest的配置有了一个基本的了解。但是要想写单元测试文件,还是远远不够的。下一篇文章,我会介绍如何在为vue的单文件组件写测试用例。并且解释说明一下我在使用jest时候的一个疑问,什么是localVue,shallowMount与mount与localVue的区别是啥?localVue与Vue的区别是啥?那么今天就到这里啦...

  

  参考:https://jestjs.io/docs/en/getting-started

学习笔记——在vue中如何配置Jest(一)的更多相关文章

  1. Linux学习笔记1-在CentOS 7中安装配置JDK8

    说明: 参考博客:http://blog.csdn.net/czmchen/article/details/41047187系统环境:CentOS 7安装方式:rpm安装JDK地址:http://ww ...

  2. 并发编程学习笔记(4)----jdk5中提供的原子类及Lock使用及原理

    (1)jdk中原子类的使用: jdk5中提供了很多原子类,它会使变量的操作变成原子性的. 原子性:原子性指的是一个操作是不可中断的,即使是在多个线程一起操作的情况下,一个操作一旦开始,就不会被其他线程 ...

  3. [学习笔记] 在Eclipse中导入项目

    参考前文:[学习笔记] 在Eclips 中导出项目 选择已经导出的文件: 导入之后,项目结构如下: 至此,完成.

  4. CockroachDB学习笔记——[译]CockroachDB中的SQL:映射表中数据到键值存储

    CockroachDB学习笔记--[译]CockroachDB中的SQL:映射表中数据到键值存储 原文标题:SQL in CockroachDB: Mapping Table Data to Key- ...

  5. [学习笔记] 在Eclipse中导出可以直接运行的jar,依赖的jar中的类解压后放在运行jar中

    前文: [学习笔记] 在Eclipse中导出可以直接运行的jar,依赖的jar打在jar包中 使用7z打开压缩包,查看所有依赖的jar都被解压以包名及class的方式存储在了运行jar中,此时jar的 ...

  6. [学习笔记] 在Eclipse中导出可以直接运行的jar,依赖的jar打在jar包中

    本文需要参考前文: [学习笔记] 在Eclipse中导出可以直接运行的jar,依赖的jar在子目录中 上文是导出的运行的依赖jar被放在了子目录中,本文是将依赖jar放在可运行jar的本身,这样发布的 ...

  7. [学习笔记] 在Eclipse中导出可以直接运行的jar,依赖的jar在子目录中

    工程创建可参考前文: [学习笔记] 在Eclipse中使用Hibernate,并创建第一个工程,数据库为Oracle XE 在工程上鼠标右键: 找到java 选择 Runable JAR file N ...

  8. Web安全学习笔记 SQL注入中

    Web安全学习笔记 SQL注入中 繁枝插云欣 --ICML8 权限提升 数据库检测 绕过技巧 一.权限提升 1. UDF提权 UDF User Defined Function,用户自定义函数 是My ...

  9. vue学习笔记(九)vue-cli中的组件通信

    前言 在上一篇博客vue学习笔记(八)组件校验&通信中,我们学会了vue中组件的校验和父组件向子组件传递信息以及子组件通知父组件(父子组件通信),上一篇博客也提到那是对组件内容的刚刚开始,而本 ...

随机推荐

  1. Confluence 6 数据库问题解除

    有关数据库相关的问题,请参考 Database Troubleshooting 中的内容. 希望获得更多的帮助,请参考 Troubleshooting Problems and Requesting ...

  2. vue的多选框

  3. ionic3 启动白屏处理

    重点就就三点 1.设置不自动隐藏splashscreen页面,设置最多延迟10s再关闭,这样可以不显示启动前的白画面 <preference name="AutoHideSplashS ...

  4. django之跨表查询及添加记录

    一:创建表 书籍模型: 书籍有书名和出版日期,一本书可能会有多个作者,一个作者也可以写多本书,所以作者和书籍的关系就是多对多的关联关系(many-to-many);     一本书只应该由一个出版商出 ...

  5. flask中的wtforms使用

    一.简单介绍flask中的wtforms WTForms是一个支持多个web框架的form组件,主要用于对用户请求数据进行验证. 安装: pip3 install wtforms 二.简单使用wtfo ...

  6. 【splunk】按时间统计并找到异常值

    场景: 有长时间对多个端口访问的日志数据,每天对端口的访问量是稳定的.如果某一天对某个端口的访问量突然增加表示可能出现了问题.现在要通过splunk找到异常值. 思路: 统计每个端口每天的访问量.统计 ...

  7. HTML&javaSkcript&CSS&jQuery&ajax(二)

    一.HTML 1.标签<a href="http:www.baidu.com">This is a link </a>         <img sr ...

  8. cf869C组合计数问题

    如果在两个区域里连点,两个区域内选的点数一定要相等 即a中选出i个点,必须与b中选出i个点相连 连接种类数为  然后我们再来看,如果ab中有两点相连,其中一点再与c相连会出事吗? 很显然不会对答案产生 ...

  9. C++ gethostname()

    使用“gethostname();”获取计算机名,先看源码: 在Code::Blocks 16.01中,设置project的Build options...,Debug > Linker set ...

  10. LoadRunner JAVA Vuser接口测试

    注:JDK只支持1.6 1.创建工程Test2.写个经典的HelloWorld类.3.Runas--->Java Application运行下4.将工程下的整个com包拷贝到loadrunner ...