AVA
Concurrent test runner for Node.js with isolated per-file processes and a small, expressive API.
Pricing
Free / Open source
Type
Automation
Languages
JavaScript, TypeScript
// VERDICT
Reach for AVA when you want a fast, minimal, concurrent JS test runner with isolated tests. Skip it when you want a full framework with mocking/snapshots built in (Jest), browser/component testing, or a non-JS stack.
Best for
A minimal JavaScript test runner that runs tests concurrently - fast, isolated tests with a simple API and built-in assertions, for Node projects wanting speed and simplicity.
Avoid when
You want a batteries-included framework (Jest), browser/component testing, or a non-JS stack.
CI/CD fit
ava CLI · concurrent runs · CI runner
Languages
JavaScript · TypeScript
Team fit
Node/JS teams · Teams valuing test speed · Unit testing
Setup
Maintenance
Learning
Licence
// BEST FOR
- Running tests concurrently for speed
- Isolated test processes (no shared state)
- A simple API with built-in assertions
- Minimal configuration
- Good for Node unit testing
- Fast feedback in CI
// AVOID WHEN
- You want a batteries-included framework (Jest)
- Browser/component testing is needed
- Your stack isn't JS/Node
- You rely on a large plugin ecosystem
- Built-in mocking/snapshots are required
- Minimal-but-different conventions don't suit the team
// QUICK START
npm install -D ava
npx ava # concurrent, isolated tests; pair with nyc for coverage// ALTERNATIVES TO CONSIDER
| Tool | Choose it when |
|---|---|
| pytest | You're testing Python instead. |
| Testing Library | You need component/DOM testing. |
| Sinon.js | You need spies/stubs/mocks to pair with the runner. |
// FEATURES
- Concurrent test execution — files run in parallel
- Per-file process isolation prevents shared-state bugs
- Async-first API with promise and observable support
- Snapshot testing built in
- TypeScript and ES module support out of the box
// PROS
- Fast — concurrency cuts wall time on large suites
- Stronger isolation than Jest avoids cross-test interference
- Tiny, expressive assertion API
- Friendly to ESM and modern JS
// CONS
- Smaller community than Jest or Vitest
- Some Jest-style features (mocking) require external libs
- Per-file process startup adds overhead on small suites
// EXAMPLE QA WORKFLOW
Install AVA
Write test files with its API
Rely on concurrent, isolated runs
Add nyc for coverage and Sinon for mocks
Run in CI
Gate on failures
// RELATED QA.CODES RESOURCES
Cheat sheets
Glossary
Practice
Interview