@darcytech/jest-preset-darcytech
Version:
jest 基础可共享配置
52 lines (51 loc) • 2.38 kB
JavaScript
module.exports = {
setupFilesAfterEnv: ['<rootDir>/node_modules/@darcytech/jest-preset-darcytech/lib/setupFilesAfterEnv.js'],
collectCoverage: false, // 默认值,设置为true时,Jest 会收集测试覆盖率信息,但可能会显著降低测试速度
collectCoverageFrom: ['<rootDir>/src/**/*.{ts,tsx,js,jsx}', '!<rootDir>/src/**/*.d.ts'], // src文件夹下的所有.js,.jsx,.ts,.tsx 文件都会被用于收集测试覆盖率, .d.ts 文件不进行覆盖率收集。
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'], // 默认值,指定模块文件的扩展名数组
moduleNameMapper: {
'\\.(css|less|scss|sass)$': 'identity-obj-proxy',
'\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$':
'<rootDir>/node_modules/@darcytech/jest-preset-darcytech/lib/fileMock.js',
'^src/(.*)$': '<rootDir>/src/$1',
},
resetMocks: true, // 每次测试前自动重置 mock 状态
roots: ['<rootDir>'], // 默认值, jest 会在该配置中的路径下查找文件
testEnvironment: 'jsdom', // 默认值, 指定测试的环境,jsdom 是类浏览器环境
testMatch: ['<rootDir>/tests/**/*.{spec,test}.{ts,tsx,js,jsx}'], // 该配置表示,jest 应该在 tests 目录下查找项目的测试文件。 注意:不要同时配置 testMatch 和 testRegex
fakeTimers: {
enableGlobally: true,
legacyFakeTimers: true,
},
transform: {
'^.+\\.(js|jsx|ts|tsx)$': [
'@swc/jest',
{
jsc: {
parser: {
syntax: 'typescript',
tsx: true,
dynamicImport: true,
decorators: true,
},
target: 'es2022',
// false:正常模式尽可能地遵循 ECMAScript 6 的语义 true:松散模式产生更简单的 ES5 代码
loose: false,
externalHelpers: true,
transform: {
legacyDecorator: true,
react: {
runtime: 'automatic',
pragma: 'React.createElement',
pragmaFrag: 'React.Fragment',
refresh: false,
},
},
},
},
],
}, // 指定哪些代码需要被编译
transformIgnorePatterns: ['/node_modules/'], // 不编译 node_modules 下的文件
verbose: true,
watchPlugins: ['jest-watch-typeahead/filename', 'jest-watch-typeahead/testname'],
};