UNPKG

@darcytech/jest-preset-darcytech

Version:

jest 基础可共享配置

53 lines (37 loc) 1.78 kB
# `@darcytech/jest-preset-darcytech` ## 简介 jest 的基础、可共享配置。 ## 安装 ``` npm i --save-dev @darcytech/jest-preset-darcytech jest ``` ## 用法 ``` //jest-config.js module.exports = { preset: '@darcytech/jest-preset-darcytech', }; ``` ## 个别配置介绍 - **collectCoverageFrom**:指定了统计覆盖率信息时,应该从哪些文件收集信息。该配置将在项目目录下的 src 文件夹中收集测试覆盖率。 - **moduleFileExtensions**:指定了一组模块文件的扩展名。如果你 require 模块的时候,没有指定文件扩展名,jest 会从左往右匹配文件。注意:如果你项目中使用的是 js,jsx,那么最好覆盖这个配置,将 js,jsx 放到数组的开头。 - **moduleNameMapper**:这里指定了一些静态资源的 mock。 - **testMatch**:这里指定**tests**为所有测试文件的根目录。 - **timers**:这里指定 @sinonjs/fake-timers 作为 fake timers 的 实现 - **transform**:指定 node_modules 文件中的所有代码不会被转换 ## 常见问题 ### 1.配置 jest 时,你觉得配置没问题,但是测试就是失败。 可能是缓存的问题。运行测试可以加上 [--no-cache](https://jestjs.io/docs/cli#--cache) 。配置好 jest 后,记得将 --no-cache 去掉,因为这会影响测试性能。如果想要删除缓存,可以参考[--clearCache](https://jestjs.io/docs/cli#--clearcache)。 ### 2. Mocking not working 内部使用了 @swc/jest ,mock api 时,需要将 mock 的代码写到另一个文件,并在测试文件顶部引入。 ```ts // mock.ts import { jest } from '@jest/globals'; jest.mock('apis/taskAutoAssignApi'); jest.mock('apis/taskTemplateApi'); ``` ```ts // a.test.ts import 'mock'; // 其他代码 ```