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

Découvrez les meilleurs dépôts open-source grâce à notre recherche par IA.

ExplorerRecherches sélectionnéesAlternatives open sourceLogiciels auto-hébergésBlogPlan du site
ProjetServeur MCPÀ proposNotre méthodologiePresse
Mentions légalesConfidentialitéConditions d'utilisation
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
onsi avatar

onsi/ginkgo

0
View on GitHub↗
9,014 stars·702 forks·Go·MIT·18 vuesonsi.github.io/ginkgo↗

Ginkgo

Ginkgo is a behavior-driven development testing framework, assertion library, and test runner for Go. It provides a domain-specific language for writing human-readable specifications, organizing tests into hierarchical containers and subjects to describe system behavior.

The project distinguishes itself through advanced execution control and observability, featuring a test runner capable of parallel distribution, sharding, and randomized execution order to detect flaky tests. It includes specialized diagnostic tools for goroutine leak detection, hanging spec monitoring, and failure state debugging.

The framework covers a broad range of testing capabilities, including asynchronous system validation with polling and timeouts, complex data structure assertions, and comprehensive lifecycle management for nested setup and teardown. It also provides automation for test filtering via labels or descriptions and the generation of machine-readable reports.

The test suite can be precompiled into a standalone binary for faster execution and distribution.

Features

  • BDD Specification Structuring - Organizes test logic into a hierarchical structure using containers and subjects to describe system behavior.
  • BDD Test Hierarchies - Organizes tests into a nested structure of containers and specs to map system behavior to a descriptive hierarchy.
  • Behavior Driven Development - Implements a behavior-driven development framework for Go using human-readable specifications and hierarchical containers.
  • Nested Data Matchers - Supports building nested matchers to apply individual validation tests to specific fields within large data sets.
  • Testing Frameworks - Implements a hierarchical BDD testing framework specifically for the Go ecosystem.
  • Test - Runs setup and teardown functions before or after individual test nodes using context wrapping and thread-locking.
  • Testing Specifications - Offers a domain-specific language for writing human-readable specifications using containers and subjects.
  • Assertion Libraries - Provides a wide range of matchers for both synchronous and asynchronous state verification in Go.
  • Assertion Matchers - Provides a comprehensive set of assertion matchers that can be combined using logical operators.
  • Asynchronous Logic Validation - Provides specialized tools for validating eventual consistency in asynchronous Go code using polling and timeouts.
  • Suite-Level Resource Initialization - Performs expensive setup and teardown exactly once for the entire suite to manage external dependencies.
  • Test Lifecycle Hooks - Manages the setup and teardown of resources across nested test containers to ensure environment isolation.
  • Go Testing Frameworks - Provides a comprehensive testing environment for Go applications with support for data-driven scenarios and complex assertions.
  • Parallel Test Execution - Distributes test specifications across multiple CPU cores to reduce total execution time in Go projects.
  • Assertion and Validation Utilities - Provides comprehensive utilities for defining test conditions and assertions with multi-return error handling.
  • Custom Matchers - Implements a common matcher interface supporting both synchronous checks and eventual consistency polling.
  • Test Execution Runners - Ships a test execution engine featuring parallelization, sharding, and randomized ordering to detect flakiness.
  • Global Test Lifecycle Hooks - Provides global hooks to perform one-time setup and teardown for the entire test suite.
  • Nested Setup Nodes - Supports hierarchical environment refinement using nested setup nodes to initialize shared state.
  • Test Lifecycle Hooks - Manages test setup and teardown by wrapping test nodes in initialization and cleanup functions.
  • Focused Test Execution - Enables rapid iteration by isolating a small set of specifications and skipping all non-focused tests.
  • Table-Driven Tests - Generates multiple test cases from tables of inputs and expected outputs for repetitive scenarios.
  • Stream Buffer Assertions - Captures data in an in-memory buffer to perform ordered assertions against incremental or streaming output.
  • Specification Timeouts - Enforces deadlines and grace periods for individual specifications to ensure timely completion.
  • Subprocess Assertions - Allows compiling binaries and monitoring external processes to validate exit codes and output streams.
  • Test Reporting Pipelines - Streams test results through a pipeline of customizable nodes that aggregate data or generate reports.
  • Deferred Cleanup Registration - Ensures resources are released regardless of test outcome by registering cleanup functions adjacent to setup code.
  • Goroutine Leak Prevention - Verifies that test executions finish without leaving orphaned or leaked goroutines.
  • Test State Cleanup - Executes cleanup code after specifications to restore external systems and prevent state pollution between tests.
  • Execution State Streaming - Emits current execution state and source code location in real-time to help debug slow or stuck tests.
  • Stuck Process Monitoring - Emits progress reports and stack traces for hanging tests via system signals or polling intervals.
  • Description-Based Filtering - Matches regular expressions against the concatenated description of the spec hierarchy to isolate specific tests.
  • Execution State Inspection - Pauses execution after a failure but before teardown to enable manual inspection of the system state.
  • Test Reporters - Generates machine-readable and formatted test reports with support for custom metadata.
  • Flaky Test Analyzers - Identifies non-deterministic failures using randomized execution order and automated retries.
  • Programmable Reporting Nodes - Implements programmable reporting nodes that execute before or after specs to aggregate results.
  • Test Report Exporters - Produces test results in standardized, machine-readable formats for CI/CD integration.
  • Execution Randomizers - Shuffles the execution order of tests using a seed to uncover hidden dependencies and state pollution.
  • Conditional Skipping - Skips tests at compile time as pending or bypasses them dynamically at runtime based on conditions.
  • Transient Failure Reruns - Automatically reruns failed tests a specified number of times to mitigate flaky or transient failures.
  • HTTP Mock Servers - Simulates an HTTP server with a stack of handlers to validate incoming requests and return prefabricated responses.
  • Label-Based Filtering - Includes or excludes tests based on textual tags and complex logical queries using set-based operations.
  • Parallel Setup Synchronization - Coordinates a single setup process across multiple parallel workers to share expensive external resources.
  • Test Case Generators - Creates test cases programmatically using loops or configuration files during the suite construction phase.
  • Test Execution Filtering - Provides the ability to isolate and run tests based on their file paths or specific line number ranges.
  • Shared Behaviors - Extracts common sets of assertions into reusable functions to avoid duplicating tests across contexts.
  • Sequence Controllers - Ensures specific groups of tests run in a fixed sequence when they rely on shared mutating state.
  • Test Sharding - Distributes test workloads across multiple processes to utilize multiple CPU cores and reduce runtime.
  • Test Suite Filters - Isolates and runs specific subsets of a large test suite using labels and command-line flags.
  • Serial Test Execution Modes - Guarantees that specific tests run sequentially on a single process to avoid resource contention.
  • Frameworks and Libraries - BDD-style testing framework for Go.
  • Frameworks de test - BDD-style testing framework.

Historique des stars

Graphique de l'historique des stars pour onsi/ginkgoGraphique de l'historique des stars pour onsi/ginkgo

Recherche par IA

Explorez plus de dépôts awesome

Décrivez vos besoins en langage naturel — l'IA classe des milliers de projets open source sélectionnés par pertinence.

Start searching with AI

Alternatives open source à Ginkgo

Projets open source similaires, classés selon le nombre de fonctionnalités partagées avec Ginkgo.
  • jasmine/jasmineAvatar de jasmine

    jasmine/jasmine

    15,824Voir sur GitHub↗

    Jasmine is a JavaScript testing framework and test runner designed for behavior-driven development. It provides a comprehensive toolset for writing and executing descriptive test suites that verify code behavior in both web browsers and Node.js environments. The framework is distinguished by its integrated mocking library, which allows for dependency isolation through spies and stubs, as well as the ability to simulate time and timing functions to test asynchronous logic synchronously. It also includes a mechanism to enforce test uniqueness, preventing duplicate names for tests and suites. I

    JavaScript
    Voir sur GitHub↗15,824
  • thomhurst/tunitAvatar de thomhurst

    thomhurst/TUnit

    3,744Voir sur 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
    Voir sur GitHub↗3,744
  • jestjs/jestAvatar de jestjs

    jestjs/jest

    45,448Voir sur 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
    Voir sur GitHub↗45,448
  • vitest-dev/vitestAvatar de vitest-dev

    vitest-dev/vitest

    15,970Voir sur 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
    Voir sur GitHub↗15,970
Voir les 30 alternatives à Ginkgo→

Questions fréquentes

Que fait onsi/ginkgo ?

Ginkgo is a behavior-driven development testing framework, assertion library, and test runner for Go. It provides a domain-specific language for writing human-readable specifications, organizing tests into hierarchical containers and subjects to describe system behavior.

Quelles sont les fonctionnalités principales de onsi/ginkgo ?

Les fonctionnalités principales de onsi/ginkgo sont : BDD Specification Structuring, BDD Test Hierarchies, Behavior Driven Development, Nested Data Matchers, Testing Frameworks, Test, Testing Specifications, Assertion Libraries.

Quelles sont les alternatives open-source à onsi/ginkgo ?

Les alternatives open-source à onsi/ginkgo incluent : jasmine/jasmine — Jasmine is a JavaScript testing framework and test runner designed for behavior-driven development. It provides a… thomhurst/tunit — TUnit is a comprehensive C# testing framework, mocking library, and fluent assertion tool. It utilizes source… jestjs/jest — Jest is a JavaScript testing framework designed for writing and running automated test suites to verify the… vitest-dev/vitest — Vitest is a high-performance testing framework designed for JavaScript and TypeScript applications. It provides an… avajs/ava — Ava is a test runner for JavaScript and TypeScript designed to execute test suites with a focus on concurrency and… doctest/doctest — doctest is a lightweight C++ unit testing framework and assertion library. It provides a single-header implementation…