// jest.config.js
module.exports = {
// 设置Jest测试环境的显式预设,例如,如果你想使用Babel,你可以这样设置
preset: 'babel-jest',
// 配置文件扩展名
moduleFileExtensions: ['js', 'json', 'jsx', 'ts', 'tsx'],
// 测试匹配的模式,例如,'__tests__'目录或者以test.js结尾的文件
testMatch: ['**/__tests__/**/*.+(js|jsx|ts|tsx)', '**/?(*.)(spec|test).+(js|jsx|ts|tsx)'],
// 转换器配置
transform: {
'^.+\\.(js|jsx|mjs|cjs|ts|tsx)$': 'babel-jest', // 使用Babel处理JS/TS文件
'^.+\\.css$': '<rootDir>/config/jest/cssTransform.js', // 处理CSS文件的转换器路径
'^(?!.*\\.(js|jsx|mjs|cjs|ts|tsx|css|json)$)': '<rootDir>/config/jest/fileTransform.js', // 处理其他文件类型的转换器路径
},
// 配置全局变量
globals: {
__DEV__: true,
},
// 设置测试结果的覆盖率目录
coverageDirectory: 'jest-coverage',
// 覆盖率报告的扩展
reporters: [
'default',
// 使用自定义覆盖率报告器
'<rootDir>/config/jest/customCoverageReporter.js',
],
// 设置测试运行时的模拟时间
timers: 'fake',
// 设置测试环境的全局变量
setupTestFrameworkScriptFile: '<rootDir>/config/jest/setupTests.js',
// 是否在CI模式下运行
ci: true,
// 是否收集覆盖率信息
collectCoverage: true,
// 是否在引导测试环境时显示通知
notify: true,
// 是否在测试完成后自动清理临时文件
automock: false,
// 是否在测试结果中显示详细的覆盖率信息
verbose: true,
// 是否在测试用例失败时自动重试
retry: 2,
// 是否以测试用例的路径作为测试用例名显示
name: 'jest-tests',
// 是否在测试用例失败时生成快照
snapshotSerializers: ['<rootDir>/node_modules/enzyme-to-json/serializer'],
// 是否在测试用例失败时更新快照
updateSnapshot: 'all',
// 是否在测试用例运行结束后生成覆盖率报告
coverageReporters: ['json-summary', 'text', 'lcov'],
// 是否在测试用例运行结束后执行自定义的脚本
globalSetup: '<rootDir>/config/jest/globalSetup.js',
// 是否在测试用例运行结束后执行自定义的脚本
globalTeardown: '<rootDir>/config/jest/globalTeardown.js',
// 是否在测试用例运行结束后收集测试结果
testResultsProcessor: 'jest-junit',
// 是否在测试用例运行结束后收集测试结果
testLocationInResults: true,
// 是否在测试用例运行结束后收集测试结果
testPathIgnorePatterns: ['<rootDir>/dist/', '<rootDir>/node_modules/'],
评论已关闭