CheckOps home

Tools directory

A

CheckOps

AVA

AVA is an MIT-licensed Node.js test runner that runs test files concurrently in separate worker processes, with a minimal API, clean output, built-in assertions and snapshot support.

Visit website

Latest public signals

Not refreshed yet. Refresh reads the public site and, when the entry has a GitHub repository, the latest release.

Visit Website

Introduction

AVA is a test runner for Node.js that “lets you develop with confidence”. Its signature design choice is concurrency: each test file runs in its own worker (worker threads by default), and tests within a file run concurrently unless marked serial. This isolation means global state cannot leak between files and makes AVA fast on multi-core machines.

AVA has no implicit globals; you import test and use the assertion object t passed to each test (t.is, t.deepEqual, t.throws, t.snapshot and more). It supports async functions, observables, TypeScript via loaders, watch mode, and magic assert output that shows clear diffs. The latest release, v8.4.0, was published on 7 November 2026.

The source code is at avajs/ava on GitHub under the MIT licence, with about 20,800 stars; the most recent commit was on 7 November 2026.

Features

  1. Concurrent by default: Files run in separate workers; tests in a file run concurrently.
  2. No globals: Explicit import test from 'ava' keeps scope clean.
  3. Built-in assertions and snapshots: t.* assertions with readable diffs and t.snapshot.
  4. Watch mode: Re-runs affected tests as files change.

Pros

  1. Free to use: Open source under the MIT licence, so the core tool costs nothing to use.
  2. Actively maintained: The repository had commits as recent as 7 November 2026.
  3. Community: About 20,800 GitHub stars.

Cons

  1. Concurrency needs care: Tests that share external resources must use test.serial.
  2. No built-in mocking: Pair with Sinon or similar for stubs.
npm init ava
import test from "ava";
import { slugify } from "./slugify.js";

test("slugify lowercases and hyphenates", (t) => {
  t.is(slugify("Hello World"), "hello-world");
});

test("async fetch", async (t) => {
  const user = await loadUser(1);
  t.like(user, { id: 1 });
});
npx ava --watch

Resources:

Pricing

AVA is free and open source under the MIT licence.

  1. Node.js library authors wanting fast, isolated tests.
  2. Teams who prefer explicit imports over global test APIs.

Conclusion

AVA offers a minimal, concurrency-first approach to Node.js testing with excellent isolation and output, ideal for libraries and backend modules.

Alternatives

Other tools on CheckOps that cover similar ground. Open a page, or compare one with AVA side by side.