GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - avajs/ava: Node.js test runner that lets you develop with confidence 🚀

BranchesTags
Open more actions menu

Latest commit

 

History

2,118 Commits
2,118 Commits

Folders and files

NameName
Last commit message
Last commit date
.github
.github
 
 
docs
docs
 
 
entrypoints
entrypoints
 
 
examples
examples
 
 
lib
lib
 
 
media
media
 
 
scripts
scripts
 
 
test-tap
test-tap
 
 
test-types
test-types
 
 
test
test
 
 
types
types
 
 
.c8rc.json
.c8rc.json
 
 
.editorconfig
.editorconfig
 
 
.gitattributes
.gitattributes
 
 
.gitignore
.gitignore
 
 
.npmrc
.npmrc
 
 
.taprc
.taprc
 
 
ava.config.js
ava.config.js
 
 
index.d.ts
index.d.ts
 
 
license
license
 
 
maintaining.md
maintaining.md
 
 
mise.toml
mise.toml
 
 
package.json
package.json
 
 
plugin.d.ts
plugin.d.ts
 
 
pnpm-lock.yaml
pnpm-lock.yaml
 
 
pnpm-workspace.yaml
pnpm-workspace.yaml
 
 
readme.md
readme.md
 
 
tsconfig.json
tsconfig.json
 
 
xo.config.js
xo.config.js
 
 

Repository files navigation

Please support our friend Vadim Demedes and the people in Ukraine.


AVA logo

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).

Translations: Español, Français, Italiano, 日本語, 한국어, Português, Русский, 简体中文

Why AVA?

  • Minimal and fast
  • Simple test syntax
  • Runs tests concurrently
  • Enforces writing atomic tests
  • No implicit globals
  • Includes TypeScript definitions
  • Magic assert
  • Isolated environment for each test file
  • Promise support
  • Async function support
  • Observable support
  • Enhanced assertion messages
  • Automatic parallel test runs in CI
  • TAP reporter

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:

  • Writing tests
  • Execution context
  • Assertions
  • Snapshot testing
  • Command line (CLI)
  • Configuration
  • Test timeouts

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

  • Test setup
  • TypeScript
  • Shared workers
  • Watch mode
  • When to use t.plan()
  • Passing arguments to your test files
  • Splitting tests in CI
  • Code coverage
  • Endpoint testing
  • Browser testing
  • Testing Vue.js components
  • Debugging tests with Chrome DevTools
  • Debugging tests with VSCode
  • Debugging tests with WebStorm
  • Isolated MongoDB integration tests
  • Testing web apps using Puppeteer
  • Testing web apps using Selenium WebDriverJS

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

  • GitHub Discussions

Related

  • eslint-plugin-ava — Lint rules for AVA tests
  • @ava/typescript — Test TypeScript projects
  • @ava/cooperate — Low-level primitives to enable cooperation between test files
  • @ava/get-port — Reserve a port while testing

Links

  • AVA stickers, t-shirts, etc
  • Awesome list
  • Do you like AVA? Donate here!
  • More…

Team

Mark Wubben Sindre Sorhus
Mark Wubben Sindre Sorhus
Former
  • Kevin Mårtensson
  • James Talmage
  • Juan Soto
  • Jeroen Engels
  • Vadim Demedes



AVA

About

Node.js test runner that lets you develop with confidence 🚀

Topics

assertasyncasync-functionsavaclicli-appconcurrencyjavascriptnodenodejsperformancetaptddtest-frameworktest-runnertestingunicornsunit-testing

Resources

Readme
MIT license

Code of conduct

Code of conduct

Contributing

Contributing

Security policy

Security policy
Activity
Custom properties

Stars

20.8k stars

Watchers

216 watching

Forks

1.5k forks
Report repository

Releases

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.