AVA logo

AVA

Open Source

Concurrent test runner for Node.js with isolated per-file processes and a small, expressive API.

Visit websiteGitHub

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

Easy

Maintenance

Low

Learning

Beginner

Licence

Free / Open source

// 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

ToolChoose it when
pytestYou're testing Python instead.
Testing LibraryYou need component/DOM testing.
Sinon.jsYou 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

  1. Install AVA

  2. Write test files with its API

  3. Rely on concurrent, isolated runs

  4. Add nyc for coverage and Sinon for mocks

  5. Run in CI

  6. Gate on failures

// RELATED QA.CODES RESOURCES