concurrentTestGlob 选项根据文件命名模式选择性地并发运行测试。
项目结构
Project Structure
配置
配置您的 [bunfig.toml] 以并发运行带有”concurrent-”前缀的测试文件:bunfig.toml
测试文件
单元测试(顺序执行)
顺序测试适用于共享状态或有特定排序要求的测试:集成测试(并发执行)
匹配 glob 模式的文件中的测试会自动并发执行:运行测试
terminal
优势
- 渐进迁移: 通过重命名文件逐个迁移至并发测试
- 清晰组织: 文件命名约定指示执行模式
- 性能: 集成测试并行运行更快
- 安全性: 单元测试在需要时保持顺序执行
- 灵活性: 通过重命名文件轻松更改执行模式
迁移策略
将现有测试迁移到并发执行:- 从独立的集成测试开始 - 这些通常不共享状态
- 重命名文件以匹配 glob 模式:
mv api.test.ts concurrent-api.test.ts - 验证测试仍然通过 - 运行
bun test以确保没有竞态条件 - 监控共享状态问题 - 观察是否有不稳定测试或意外失败
- 继续逐步迁移稳定测试 - 不要急于迁移
提示
- 使用描述性前缀:
concurrent-,parallel-,async- - 将相关的顺序测试保存在一起 在同一目录中
- 使用注释记录为什么某些测试必须保持顺序执行
- 在顺序文件中使用
test.concurrent()进行细粒度控制 (注意: 在由concurrentTestGlob匹配的文件中,普通的test()已经并发运行)
多模式
您可以为不同的测试类别指定多个模式:bunfig.toml
integration/目录中的所有测试e2e/目录中的所有测试- 项目中任何位置带有
concurrent-前缀的所有测试