Skip to main content

ava

AVA​

AVA is a test runner for Node.js with a concise API, detailed error output, embrace of new language features and thread isolation that lets you develop with confidence πŸš€

Watch this repository and follow the Discussions for updates.

Read our contributing guide if you're looking to contribute (issues / PRs / etc).

Why AVA?​

Usage​

To install and set up AVA, run:

npm init ava

Your package.json will then look like this (exact version notwithstanding):

{
"name": "awesome-package",
"type": "module",
"scripts": {
"test": "ava"
},
"devDependencies": {
"ava": "^5.0.0"
}
}

Or if you prefer using Yarn:

yarn add ava --dev

Alternatively you can install ava manually:

npm install --save-dev ava

Make sure to install AVA locally. AVA cannot be run globally.

Don't forget to configure the test script in your package.json as per above.

Create your test file​

Create a file named test.js in the project root directory.

Note that AVA's documentation assumes you're using ES modules.

import test from 'ava';

test('foo', t => {
t.pass();
});

test('bar', async t => {
const bar = Promise.resolve('bar');
t.is(await bar, 'bar');
});

Running your tests​

npm test

Or with npx:

npx ava

Run with the --watch flag to enable AVA's watch mode:

npx ava --watch

Supported Node.js versions​

AVA supports the latest release of any major version that is supported by Node.js itself. Read more in our support statement.

Highlights​

Magic assert​

AVA adds code excerpts and clean diffs for actual and expected values. If values in the assertion are objects or arrays, only a diff is displayed, to remove the noise and focus on the problem. The diff is syntax-highlighted too! If you are comparing strings, both single and multi line, AVA displays a different kind of output, highlighting the added or missing characters.

Clean stack traces​

AVA automatically removes unrelated lines in stack traces, allowing you to find the source of an error much faster, as seen above.

Parallel runs in CI​

AVA automatically detects whether your CI environment supports parallel builds. Each build will run a subset of all test files, while still making sure all tests get executed. See the ci-parallel-vars package for a list of supported CI environments.

Documentation​

Please see the files in the docs directory:

Common pitfalls​

We have a growing list of common pitfalls you may experience while using AVA. If you encounter any issues you think are common, comment in this issue.

Recipes​

FAQ​

How is the name written and pronounced?​

AVA, not Ava or ava. Pronounced /ˈeΙͺvΙ™/: Ay (face, made) V (vie, have) A (comma, ago)

What is the header background?​

It's the Andromeda galaxy.

What is the difference between concurrency and parallelism?​

Concurrency is not parallelism. It enables parallelism.

Support​

Team​

Mark WubbenSindre Sorhus
Mark WubbenSindre Sorhus
Former​