Skip to main content
By default, your tests run on TestDriver’s cloud. Each test gets a fresh sandbox, and you don’t manage any machines.
  • Hosted is the default. When you follow the Quickstart, you’re using it.
  • Usage is measured in testing minutes: the time a sandbox is running.
  • Your plan sets how many sandboxes can run at the same time.

How testing minutes are counted

Testing minutes run while a sandbox is running. That includes sandboxes started by:
  • Your test runs, locally and in CI.
  • The TestDriver agent, when it reviews a pull request or writes a test.
A sandbox kept running with keepAlive uses minutes until it shuts down. Keep keepAlive as short as you need.

Concurrency

Each running sandbox uses one of your plan’s slots. A slot frees up when its sandbox shuts down. When every slot is busy, a new test waits for a free slot instead of failing. The SDK retries every 10 seconds, for up to 60 seconds by default. Set TD_CONCURRENCY_MAX_WAIT to change the wait. See Concurrency limits. To stay within your slots, limit how many test files Vitest runs at once:
In GitHub Actions, a concurrency group stops two runs on the same branch from competing for slots. A new push cancels the older run:
.github/workflows/testdriver.yml

When to self-host

Consider self-hosting when you need to:
  • Run tests on your own infrastructure.
  • Use your own AI provider keys.
  • Run custom VM images with your software preinstalled.
  • Run more tests in parallel than hosted allows.

Next steps

Quickstart

Run your first test on a hosted sandbox.

Run tests in CI/CD

Run your tests on every push and pull request.

Self-hosted

Run sandboxes on your own infrastructure.

Run tests

Run tests locally and in parallel.