-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathjest.config.js
52 lines (40 loc) · 1.5 KB
/
jest.config.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
const { defaults } = require('ts-jest/presets');
module.exports = {
// ts的preset
...defaults,
// 自动清除 Mock
clearMocks: true,
// 开启覆盖率
collectCoverage: true,
// 指定生成覆盖率报告文件存放位置
coverageDirectory: 'coverage',
// 不用管
coverageProvider: 'v8',
// Jest 配置基础的预设
preset: 'react-native',
// 模块使用的文件扩展名数组
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'],
// 检测测试文件的模式(tests 目录下的 tsx 或 jsx 文件)
testRegex: '(src/components/.*\\.(test|spec))\\.[tj]sx?$',
// 匹配的路径下文件将跳过覆盖率信息
testPathIgnorePatterns: ['<rootDir>/node_modules/', '\\.snap$'],
// 定义文件的编译方式
transform: {
'^.+\\.tsx?$': [
'ts-jest',
{
babelConfig: true,
// tsconfig适配node modules下的一些文件
tsconfig: './tsconfig.test.json',
},
],
'.+\\.(css|styl|less|sass|scss|png|jpg|ttf|woff|woff2)$': 'jest-transform-stub',
},
// 定义了忽略进行 jest 执行的依赖包
transformIgnorePatterns: [
'node_modules/(?!(react-native|@react-native|@testing-library|react-navigation|@react-navigation/.*|@react-native-community|react-native-reanimated)/)',
],
// react-native-reanimated运行时需要一些配置
setupFilesAfterEnv: ['./jest-setup.js'],
collectCoverageFrom: ['src/**/*.{js,jsx,ts,tsx}', '!**/node_modules/**', '!**/vendor/**', '!**/src/_common/**'],
};