Jest测试框架全方位指南:从安装,preset、transform、testMatch等jest.config.js配置,多模式测试命令到测试目录规划等最佳实践

warning: 这篇文章距离上次修改已过197天,其中的内容可能已经有所变动。



// 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/'],

评论已关闭

推荐阅读

DDPG 模型解析,附Pytorch完整代码
2024年11月24日
DQN 模型解析,附Pytorch完整代码
2024年11月24日
AIGC实战——Transformer模型
2024年12月01日
Socket TCP 和 UDP 编程基础(Python)
2024年11月30日
python , tcp , udp
如何使用 ChatGPT 进行学术润色?你需要这些指令
2024年12月01日
AI
最新 Python 调用 OpenAi 详细教程实现问答、图像合成、图像理解、语音合成、语音识别(详细教程)
2024年11月24日
ChatGPT 和 DALL·E 2 配合生成故事绘本
2024年12月01日
omegaconf,一个超强的 Python 库!
2024年11月24日
【视觉AIGC识别】误差特征、人脸伪造检测、其他类型假图检测
2024年12月01日
[超级详细]如何在深度学习训练模型过程中使用 GPU 加速
2024年11月29日
Python 物理引擎pymunk最完整教程
2024年11月27日
MediaPipe 人体姿态与手指关键点检测教程
2024年11月27日
深入了解 Taipy:Python 打造 Web 应用的全面教程
2024年11月26日
基于Transformer的时间序列预测模型
2024年11月25日
Python在金融大数据分析中的AI应用(股价分析、量化交易)实战
2024年11月25日
AIGC Gradio系列学习教程之Components
2024年12月01日
Python3 `asyncio` — 异步 I/O,事件循环和并发工具
2024年11月30日
llama-factory SFT系列教程:大模型在自定义数据集 LoRA 训练与部署
2024年12月01日
Python 多线程和多进程用法
2024年11月24日
Python socket详解,全网最全教程
2024年11月27日