乐闻世界logo
搜索文章和话题

如何优化 Jest 测试性能?有哪些提高测试速度的方法?

2月19日 19:27

优化 Jest 测试性能可以提高开发效率和 CI/CD 速度:

1. 并行执行测试: Jest 默认并行运行测试,可以显著提高速度。确保测试之间相互独立。

2. 选择性运行测试:

bash
# 只运行修改过的文件相关测试 jest --onlyChanged # 只运行匹配模式的测试 jest --testPathPattern=auth # 使用 .only 临时运行特定测试 test.only('specific test', () => { /* ... */ });

3. 优化测试环境:

javascript
// jest.config.js module.exports = { testEnvironment: 'node', // 比 jsdom 更快 maxWorkers: '50%', // 限制工作进程数量 testTimeout: 5000, // 设置合理的超时时间 };

4. 使用 Mock 减少外部依赖:

javascript
jest.mock('./api', () => ({ fetchData: jest.fn(() => Promise.resolve('mocked data')) }));

5. 优化覆盖率收集:

javascript
collectCoverageFrom: [ 'src/**/*.{js,jsx,ts,tsx}', '!src/**/*.stories.{js,jsx,ts,tsx}', '!src/**/*.d.ts' ],

6. 缓存优化:

  • Jest 自动缓存转换结果
  • 使用 --no-cache 禁用缓存(调试时)
  • 清理缓存:jest --clearCache

7. 减少不必要的测试:

  • 避免过度测试
  • 跳过慢速测试:test.skip('slow test', () => { /* ... */ });
  • 使用 describe.skip 跳过整个测试套件

8. 监听模式优化:

bash
# 使用 --watchAll 监听所有文件 jest --watchAll # 使用 --watch 只监听相关文件 jest --watch

最佳实践:

  • 保持测试快速和独立
  • 使用 Mock 隔离外部依赖
  • 定期审查和优化慢速测试
  • 在 CI 中使用 --maxWorkers 控制资源使用
标签:Jest