Skip to main content
bunfig.toml 中的 concurrentTestGlob 选项可使文件名匹配 glob 模式的文件中的测试并发运行。

项目结构

项目结构

配置

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

测试文件

单元测试(顺序执行)

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

集成测试(并发执行)

匹配 glob 模式的文件中的测试会自动并发运行:
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- 前缀的所有测试