awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
avajs avatar

avajs/ava

0
View on GitHub↗
20,849 stars·1,459 forks·JavaScript·MIT·39 views

Ava

Ava is a test runner for JavaScript and TypeScript designed to execute test suites with a focus on concurrency and isolation. It serves as a concurrent test executor that runs test files in parallel across multiple processes to reduce total runtime and prevent state leakage between suites.

The project features a built-in snapshot testing framework that saves large data structures to disk and compares subsequent executions to detect regressions via diffs. It is also compatible with the Test Anything Protocol, allowing it to export results for use with external reporting tools.

Its capability surface covers a wide range of test automation needs, including asynchronous test handling, lifecycle management with setup and teardown hooks, and a watch mode that tracks dependencies to re-run only affected tests. It also provides tools for measuring code coverage, simulating browser environments, and distributing test suites across parallel nodes in continuous integration environments.

Features

  • Test Isolation - Runs each test file in a separate worker process to prevent state leakage and ensure isolation.
  • JavaScript Test Frameworks - Provides a comprehensive framework for organizing and executing automated test suites within JavaScript and TypeScript runtimes.
  • Parallel Test Execution - Serves as a concurrent test executor that runs test files in parallel across multiple processes for isolation.
  • Snapshot Persistence - Saves large data structures to disk and compares subsequent executions to detect regressions via diffs.
  • TypeScript Execution - Provides native support for executing TypeScript tests using custom runtime loaders or precompiled outputs.
  • Test Execution - Supports running tests written in TypeScript using precompiled outputs or custom runtime loaders.
  • Assertion Libraries - Provides a built-in mechanism to compare actual values against expected results using assertions.
  • Asynchronous Test Handling - Provides first-class support for awaiting promises and async functions before concluding a test.
  • Teardown Hooks - Registers teardown functions to ensure test resources are cleaned up after execution.
  • Test Lifecycle Hooks - Provides setup and teardown hooks to initialize and clean up shared resources across tests.
  • Node.js Test Automation - Provides a comprehensive framework for automating tests specifically within the Node.js runtime.
  • Snapshot Testing - Captures serialized states of data structures and compares them against future outputs to detect regressions.
  • TypeScript Support - Executes tests written in TypeScript using integrated runtime loaders or precompiled build outputs.
  • Test File Selection - Specifies which files to execute as tests using glob patterns and allowed file extensions.
  • Test Execution Management - Manages test execution via concurrency settings, worker thread configuration, and timeout limits.
  • Test Lifecycle Hooks - Runs setup logic and environment preparation using global hooks or customizable functions.
  • Worker Process Management - Provides control over whether tests run in isolated worker processes or worker threads.
  • Debugging and Inspection Tools - Provides capabilities to connect test execution to a debugger to set breakpoints and inspect runtime state.
  • Test Dependency Analysis - Analyzes static imports to determine which test files need to run based on source code changes.
  • Global Application Contexts - Passes a shared state object from setup hooks to tests to avoid reliance on global variables.
  • Test Watch Modes - Tracks file changes and automatically re-runs affected tests to provide immediate feedback during development.
  • CI Test Distribution - Distributes test suites across parallel CI nodes to accelerate feedback loops and build times.
  • Stack Trace Formatters - Removes internal system noise from error logs to highlight the exact line of code causing a failure.
  • Test-Driven Development Workflow - Features a watch mode that tracks dependencies to automatically re-run affected tests during development.
  • Assertion Diff Visualizers - Generates syntax-highlighted diffs to pinpoint discrepancies between expected and actual values.
  • Code Coverage Analysis - Tracks which parts of the source code are executed during tests to identify untested logic.
  • Test Failure Debugging Tools - Allows pausing test execution with an external debugger to inspect variables and application state during failures.
  • TAP Result Exporters - Outputs test results using the Test Anything Protocol for compatibility with external reporting tools.
  • Test Coverage Collections - Controls the generation and requirements for code coverage reports.
  • Test Execution Controls - Allows restricting test runs to specific subsets or skipping tests based on runtime conditions.
  • Resource Teardown Registration - Allows registering teardown functions that execute in reverse order of registration to clean up resources.
  • Test Execution Timeouts - Provides configurable execution time limits for tests to prevent stalled suites from hanging.
  • Interactive Snapshot Updates - Allows refreshing failing snapshot values via a command prompt while the test runner is in watch mode.
  • Test Suite Partitioning - Divides the test suite into smaller chunks for distribution across parallel CI nodes to reduce runtime.
  • Code Coverage Reportings - Tracks which parts of the source code execute during tests and generates percentage coverage reports.
  • Test Suite Partitioners - Splits test suites across multiple parallel builds in CI environments to accelerate feedback loops.
  • Browser Automation Testing - Runs automated web application tests using external browser drivers to verify page behavior.
  • Change-Based Test Selection - Analyzes static imports to identify and execute only the tests affected by specific file modifications.
  • Test Suite Filters - Supports executing a subset of tests using case-insensitive wildcard patterns matched against test titles.
  • Serial Test Execution Modes - Enforces sequential execution of tests to prevent race conditions when sharing resources.
  • Test Setup Orchestrators - Executes specific modules or functions to handle project-wide setup before running tests.
  • Test Context Sharing - Enables passing state from setup hooks to tests via a context object to avoid global state leakage.
  • Inter-Worker Communication - Enables serialized message exchange between independent test processes and a central coordinator.
  • Shared Coordination Workers - Runs a persistent background program to coordinate shared resources across multiple test worker processes.
  • Value Difference Visualizers - Produces detailed value differences to help isolate the cause of test failures.
  • Watch Mode Runners - Provides a watch mode that tracks file dependencies to automatically re-execute only the affected tests.
  • Development Utilities - Offers snippets and support for the test runner.
  • Testing and Quality Assurance - Node.js test runner for concurrent development.
  • Testing Frameworks - Futuristic, high-performance test runner.
  • Articles - Listed in the “Articles” section of the Awesome Ava awesome list.

Star history

Star history chart for avajs/avaStar history chart for avajs/ava

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Ava

Similar open-source projects, ranked by how many features they share with Ava.
  • vitest-dev/vitestvitest-dev avatar

    vitest-dev/vitest

    15,970View on GitHub↗

    Vitest is a high-performance testing framework designed for JavaScript and TypeScript applications. It provides an integrated environment that supports unit, integration, and browser-based testing, allowing developers to execute test suites natively without requiring separate build steps or complex configuration. The project distinguishes itself through a highly optimized execution model that leverages worker-thread isolation and on-demand module transformation to provide rapid feedback. It includes a comprehensive suite of mocking and spying utilities that allow for the interception of depen

    TypeScripttesttesting-toolsvite
    View on GitHub↗15,970
  • thomhurst/tunitthomhurst avatar

    thomhurst/TUnit

    3,744View on GitHub↗

    TUnit is a comprehensive C# testing framework, mocking library, and fluent assertion tool. It utilizes source generation for test discovery and mock creation, ensuring compatibility with Native AOT and IL trimming by eliminating the need for runtime reflection and proxies. The framework provides specialized capabilities for integration testing, including the management of distributed application lifecycles, isolated database schemas, and the correlation of telemetry and logs across process boundaries via OTLP. It also includes an HTTP testing utility to intercept network exchanges and mock AP

    C#csharpdotnettest
    View on GitHub↗3,744
  • mochajs/mochamochajs avatar

    mochajs/mocha

    22,967View on GitHub↗

    Mocha is a JavaScript test runner and framework designed to execute automated test suites across multiple runtimes, including Node.js and web browser environments. It functions as a pluggable testing tool for organizing and validating unit, integration, and functional tests. The project distinguishes itself through a plugin-based extension interface that allows for custom functionality and reporting. It supports a multi-runtime approach, enabling the same test suite to run in different JavaScript environments, and includes a watch mode that monitors the filesystem to trigger automatic test re

    JavaScriptbddbrowserjavascript
    View on GitHub↗22,967
  • jestjs/jestjestjs avatar

    jestjs/jest

    45,448View on GitHub↗

    Jest is a JavaScript testing framework designed for writing and running automated test suites to verify the correctness of JavaScript and TypeScript code. It functions as a comprehensive toolset that integrates a test runner, a mocking and spying library, a snapshot testing tool, and a code coverage tool. The framework distinguishes itself through snapshot testing, which records the serialized state of data structures to detect regressions in future executions. It also includes a mocking and spying library for simulating external dependencies and tracking function calls to isolate code during

    TypeScripteasyexpectationfacebook
    View on GitHub↗45,448
See all 30 alternatives to Ava→

Frequently asked questions

What does avajs/ava do?

Ava is a test runner for JavaScript and TypeScript designed to execute test suites with a focus on concurrency and isolation. It serves as a concurrent test executor that runs test files in parallel across multiple processes to reduce total runtime and prevent state leakage between suites.

What are the main features of avajs/ava?

The main features of avajs/ava are: Test Isolation, JavaScript Test Frameworks, Parallel Test Execution, Snapshot Persistence, TypeScript Execution, Test Execution, Assertion Libraries, Asynchronous Test Handling.

What are some open-source alternatives to avajs/ava?

Open-source alternatives to avajs/ava include: vitest-dev/vitest — Vitest is a high-performance testing framework designed for JavaScript and TypeScript applications. It provides an… thomhurst/tunit — TUnit is a comprehensive C# testing framework, mocking library, and fluent assertion tool. It utilizes source… mochajs/mocha — Mocha is a JavaScript test runner and framework designed to execute automated test suites across multiple runtimes,… jestjs/jest — Jest is a JavaScript testing framework designed for writing and running automated test suites to verify the… microsoft/playwright — Playwright is a comprehensive browser automation framework designed for end-to-end testing and web workflow… mobile-dev-inc/maestro — Maestro is a declarative mobile and web UI automation framework designed for end-to-end testing. It operates by…