Skip to main content
This guide demonstrates how to use the concurrentTestGlob option to selectively run tests concurrently based on file naming patterns.

Project Structure

Project Structure

Configuration

Configure your bunfig.toml to run test files with “concurrent-” prefix concurrently:
bunfig.toml

Test Files

Unit Test (Sequential)

Sequential tests are good for tests that share state or have specific ordering requirements:
tests/unit/math.test.ts

Integration Test (Concurrent)

Tests in files matching the glob pattern automatically run concurrently:
tests/integration/concurrent-api.test.ts

Running Tests

terminal

Benefits

  1. Gradual Migration: Migrate to concurrent tests file by file by renaming them
  2. Clear Organization: File naming convention indicates execution mode
  3. Performance: Integration tests run faster in parallel
  4. Safety: Unit tests remain sequential where needed
  5. Flexibility: Easy to change execution mode by renaming files

Migration Strategy

To migrate existing tests to concurrent execution:
  1. Start with independent integration tests - These typically don’t share state
  2. Rename files to match the glob pattern: mv api.test.ts concurrent-api.test.ts
  3. Verify tests still pass - Run bun test to ensure no race conditions
  4. Monitor for shared state issues - Watch for flaky tests or unexpected failures
  5. Continue migrating stable tests incrementally - Don’t rush the migration

Tips

  • Use descriptive prefixes: concurrent-, parallel-, async-
  • Keep related sequential tests together in the same directory
  • Document why certain tests must remain sequential with comments
  • Use test.concurrent() for fine-grained control in sequential files (Note: In files matched by concurrentTestGlob, plain test() already runs concurrently)

Multiple Patterns

You can specify multiple patterns for different test categories:
bunfig.toml
This configuration will run tests concurrently if they match any of these patterns:
  • All tests in integration/ directories
  • All tests in e2e/ directories
  • All tests with concurrent- prefix anywhere in the project