# sindresorhus/ava

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/sindresorhus-ava).**

20,849 stars · 1,460 forks · JavaScript · MIT

## Links

- GitHub: https://github.com/sindresorhus/ava
- awesome-repositories: https://awesome-repositories.com/repository/sindresorhus-ava.md

## Description

Ava is a concurrent test runner for Node.js that executes test files in parallel using worker thread isolation to prevent global state leakage. It functions as a TAP-compliant tool, exporting results via the Test Anything Protocol for integration with external reporting systems.

The framework distinguishes itself through a focus on execution speed and clarity, utilizing worker threads to run multiple test files simultaneously across CPU cores. It includes stack trace simplification to filter out internal framework noise and a value comparison utility that provides syntax-highlighted diffs for failed assertions.

The system covers a broad range of quality assurance capabilities, including pattern-based test discovery and a watch mode that monitors the file system for real-time test re-runs. For continuous integration environments, it provides a mechanism to split large test suites across multiple build nodes to reduce total execution time.

## Tags

### Testing & Quality Assurance

- [Node.js Test Automation](https://awesome-repositories.com/f/testing-quality-assurance/node-js-test-automation.md) — Provides a high-performance concurrent testing framework specifically tailored for the Node.js runtime.
- [Test Isolation](https://awesome-repositories.com/f/testing-quality-assurance/general-testing-utilities/test-isolation.md) — Executes individual test files in separate worker threads to prevent global state leakage between suites.
- [Parallel Test Execution](https://awesome-repositories.com/f/testing-quality-assurance/parallel-test-execution.md) — Executes multiple test files simultaneously across CPU cores to significantly reduce total suite execution time.
- [Test Execution Runners](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/test-frameworks/execution-and-infrastructure/test-execution-runners.md) — Ships a command-line test runner that manages the lifecycle, parallelization, and reporting of JavaScript tests.
- [Assertion Diff Visualizers](https://awesome-repositories.com/f/testing-quality-assurance/assertion-diff-visualizers.md) — Displays syntax-highlighted diffs and code excerpts for failed assertions to identify divergences between expected and actual values. ([source](https://github.com/sindresorhus/ava#readme))
- [TAP Result Exporters](https://awesome-repositories.com/f/testing-quality-assurance/general-testing-utilities/test-reporters/external-result-reporters/tap-result-exporters.md) — Provides the ability to export test results using the standardized Test Anything Protocol for external reporting. ([source](https://github.com/sindresorhus/ava#readme))
- [Test Suite Partitioning](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/test-execution-orchestration/automated-test-runners/test-suite-partitioning.md) — Distributes test subsets across parallel build nodes to reduce total execution time in continuous integration environments. ([source](https://github.com/sindresorhus/ava#readme))
- [Test Suite Partitioners](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/end-to-end-testing-suites/test-suite-partitioners.md) — Splits large test suites into parallelizable chunks to optimize execution across multiple CI build nodes.
- [Test Discovery Mechanisms](https://awesome-repositories.com/f/testing-quality-assurance/test-discovery-mechanisms.md) — Scans the directory tree using specific naming conventions to identify and queue test files for execution.
- [Test Reporting Protocols](https://awesome-repositories.com/f/testing-quality-assurance/testing-infrastructure-management/test-reporting-protocols.md) — Generates test results using the Test Anything Protocol to ensure compatibility with external analysis and reporting tools.
- [Watch Mode Runners](https://awesome-repositories.com/f/testing-quality-assurance/watch-mode-runners.md) — Provides a watch mode that automatically runs tests upon detecting file changes for immediate developer feedback. ([source](https://github.com/sindresorhus/ava#readme))

### DevOps & Infrastructure

- [Continuous Integration Pipelines](https://awesome-repositories.com/f/devops-infrastructure/continuous-integration-pipelines.md) — Optimizes CI pipelines by distributing test suites across multiple parallel build nodes.

### Software Engineering & Architecture

- [Internal Frame Filters](https://awesome-repositories.com/f/software-engineering-architecture/stacks/stack-trace-formatters/internal-frame-filters.md) — Simplifies error logs by filtering out internal framework frames to highlight the exact line of code where a failure occurred.
- [Test-Driven Development Workflow](https://awesome-repositories.com/f/software-engineering-architecture/test-driven-development-workflow.md) — Supports an iterative TDD workflow by automatically running tests as files change for immediate feedback.

### System Administration & Monitoring

- [File System Monitors](https://awesome-repositories.com/f/system-administration-monitoring/file-system-monitors.md) — Monitors the project directory for modifications to trigger automatic test re-runs during active development.

### Part of an Awesome List

- [Test Producers](https://awesome-repositories.com/f/awesome-lists/devtools/test-producers.md) — A futuristic test runner with native TAP output support.
- [Testing Frameworks](https://awesome-repositories.com/f/awesome-lists/devtools/testing-frameworks.md) — Futuristic test runner for JavaScript.
