concurrentTestGlob 选项,基于文件命名模式有选择地并发运行测试。
项目结构
项目结构
配置
配置你的bunfig.toml,使带有 “concurrent-” 前缀的测试文件并发运行:
bunfig.toml
测试文件
单元测试(顺序执行)
顺序测试适用于共享状态或有特定执行顺序需求的测试:集成测试(并发执行)
匹配通配符模式的文件中的测试自动并发运行:运行测试
terminal
优点
- 逐步迁移:通过重命名文件逐个迁移到并发测试
- 清晰的组织:文件命名约定体现执行方式
- 性能提升:集成测试并行执行更快
- 安全保障:单元测试在需要时保持顺序执行
- 灵活性强:通过重命名文件轻松更改执行方式
迁移策略
迁移现有测试到并发执行:- 从独立的集成测试开始 — 通常这些测试不共享状态
- 重命名文件以匹配通配符模式:
mv api.test.ts concurrent-api.test.ts - 确保测试仍然通过 — 运行
bun test确认无竞态条件 - 监控共享状态问题 — 观察是否有不稳定测试或意外失败
- 逐步迁移稳定测试 — 不要急于全部迁移
建议
- 使用描述性前缀:如
concurrent-、parallel-、async- - 将相关的顺序测试放在一起,保持同一目录
- 用注释说明某些测试必须顺序执行的原因
- 在顺序文件中使用
test.concurrent()实现细粒度控制 (注意:在匹配concurrentTestGlob的文件中,普通test()即为并发执行)
多个模式
你可以为不同测试类别指定多个模式:bunfig.toml
- 所有
integration/目录下的测试 - 所有
e2e/目录下的测试 - 项目中任意位置所有以
concurrent-前缀命名的测试文件