Skip to main content
bunfig.toml 中的 concurrentTestGlob 选项会在文件名匹配通配符模式的文件中并发运行测试。

项目结构

项目结构

配置

配置 bunfig.toml,以并发运行带有“concurrent-”前缀的测试文件:
bunfig.toml

测试文件

单元测试(顺序执行)

共享状态或依赖执行顺序的测试应保持顺序执行:
tests/unit/math.test.ts

集成测试(并发执行)

匹配通配符模式的文件中的测试自动并发运行:
tests/integration/concurrent-api.test.ts

运行测试

terminal

优点

  1. 渐进式迁移:一次重命名一个文件,将其迁移到并发执行
  2. 组织清晰:文件名会告诉你该文件中的测试如何运行
  3. 性能提升:独立的集成测试并行运行时完成得更快
  4. 安全性:单元测试在需要时保持串行运行

迁移策略

迁移现有测试到并发执行:
  1. 从相互独立的集成测试开始 - 这些测试通常不会共享状态
  2. 重命名文件以匹配 glob 模式mv api.test.ts concurrent-api.test.ts
  3. 运行 bun test - 检查竞态条件以及不稳定或意外的失败
  4. 逐个文件继续迁移稳定的测试

建议

  • 使用描述性前缀concurrent-parallel-async-
  • 将相关的顺序测试放在同一目录中
  • 通过注释说明某些测试必须保持顺序执行的原因
  • 在顺序执行的文件中使用 test.concurrent() 进行细粒度控制 (在与 concurrentTestGlob 匹配的文件中,普通的 test() 已会并发运行)

多个模式

concurrentTestGlob 也接受多个模式:
bunfig.toml
匹配任意这些模式的文件中的测试将并发运行:
  • 所有 integration/ 目录下的测试
  • 所有 e2e/ 目录下的测试
  • 项目中任意位置所有以 concurrent- 前缀命名的测试文件。