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
sstephenson avatar

sstephenson/batsArchived

0
View on GitHub↗

Bats

BATS is a testing framework and verification tool designed for Bash scripts and Unix programs. It serves as a test runner that validates the behavior of command line utilities by verifying exit statuses and command output.

The framework functions as a TAP compliant test runner, producing output that follows the Test Anything Protocol for integration with reporting tools and continuous integration pipelines.

The tool provides test automation capabilities including isolated test execution in separate subprocesses and lifecycle management via setup and teardown functions. It covers result aggregation across directories, command output capture, and the sourcing of shared test helpers.

Syntax highlighting rules are provided for test files to assist with code readability and maintenance in text editors.

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

Features

  • Bash Script Testing - Provides a dedicated framework for verifying that shell scripts and Unix programs behave as expected.
  • Bash - Provides a framework for writing and running tests for Bash scripts using simple syntax for exit statuses and output.
  • TAP Stream Outputs - Produces test results in the standardized Test Anything Protocol format for compatibility with external runners.
  • System Stream Interception - Intercepts standard output and error streams, buffering them and displaying contents only upon test failure.
  • Operation Output Captures - Captures the exit status and output streams of commands to verify resulting data and error messages.
  • Global Output Interception - Intercepts global stdout and stderr, displaying the captured content only when a test case fails.
  • Automated Test Suites - Provides an automated suite for validating that command line tools produce correct results across different environments.
  • Behavior Verification - Validates the functional behavior of Unix command line utilities by comparing actual outputs against expected results.
  • Behavioral Verification Tools - Provides tools to verify the behavior of Unix command line programs through automated suites and isolated environments.
  • CI Test Exporting - Outputs test outcomes in machine-parsable formats, such as TAP, for seamless integration with continuous delivery pipelines.
  • Test Isolation - Executes each test case in a separate child process to prevent environment pollution and shared state interference.
  • Test Lifecycle Hooks - Implements setup and teardown functions that execute before and after individual test cases.
  • Test Lifecycle Hooks - Implements setup and teardown functions to ensure a consistent execution environment for every test case.
  • Continuous Integration Checks - Integrates standardized test results into continuous integration pipelines to automatically detect regressions in shell scripts.
  • Test Report Aggregators - Aggregates results from multiple test files across directories into a combined exit status and summary report.
  • Conditional Skipping - Allows specific tests to be bypassed using conditional triggers or manual reasons to avoid unnecessary failures.
  • Test Dependency Validation - Evaluates required components during the initial load to terminate the test suite early if dependencies are missing.
  • Test File Discovery - Automatically scans project directories to identify and map test files for execution.
  • Test Producers - A testing framework for Bash scripts.
7,107 stars·510 forks·Shell·MIT·31 views

Star history

Star history chart for sstephenson/batsStar history chart for sstephenson/bats

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

Projects sharing features with Bats

These projects share indexed features with Bats. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • 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
  • substack/tapesubstack avatar

    substack/tape

    5,800View on GitHub↗

    Tape is a JavaScript testing framework and assertion library that serves as a test runner for Node.js and browser environments. It implements the Test Anything Protocol to provide a standardized, machine-readable format for test results. The project functions as a cross-environment test harness, allowing the same test suites to be executed across both server-side and client-side environments while maintaining a consistent output protocol. Its capabilities include validating value equality and truthiness, verifying exception handling, and coordinating asynchronous workflows. The framework als

    JavaScript
    View on GitHub↗5,800
  • avajs/avaavajs avatar

    avajs/ava

    20,849View on GitHub↗

    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

    JavaScriptassertasyncasync-functions
    View on GitHub↗20,849
  • jquery/qunitjquery avatar

    jquery/qunit

    4,035View on GitHub↗

    QUnit is a JavaScript unit testing framework designed to verify code behavior using assertions and lifecycle hooks across browsers and server runtimes. It functions as a browser-based test runner with an HTML interface for reporting results, an asynchronous test orchestrator for coordinating callbacks, and a utility for isolating and verifying document object model changes. The framework distinguishes itself through specialized DOM testing capabilities, allowing for the isolation and resetting of the document object model between tests to ensure atomicity. It also features a system for detect

    JavaScript
    View on GitHub↗4,035
Compare all 30 related projects→

Frequently asked questions

What does sstephenson/bats do?

BATS is a testing framework and verification tool designed for Bash scripts and Unix programs. It serves as a test runner that validates the behavior of command line utilities by verifying exit statuses and command output.

What are the main features of sstephenson/bats?

The main features of sstephenson/bats are: Bash Script Testing, Bash, TAP Stream Outputs, System Stream Interception, Operation Output Captures, Global Output Interception, Automated Test Suites, Behavior Verification.

Which projects share features with sstephenson/bats?

Projects with overlapping indexed features include: thomhurst/tunit — TUnit is a comprehensive C# testing framework, mocking library, and fluent assertion tool. It utilizes source… substack/tape — Tape is a JavaScript testing framework and assertion library that serves as a test runner for Node.js and browser… avajs/ava — Ava is a test runner for JavaScript and TypeScript designed to execute test suites with a focus on concurrency and… jquery/qunit — QUnit is a JavaScript unit testing framework designed to verify code behavior using assertions and lifecycle hooks… onsi/ginkgo — Ginkgo is a behavior-driven development testing framework, assertion library, and test runner for Go. It provides a… vitest-dev/vitest — Vitest is a high-performance testing framework designed for JavaScript and TypeScript applications. It provides an…