30 open-source projects similar to doctest/doctest, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best Doctest alternative.
doctest is a unit testing framework and assertion library for C++ delivered as a single-header library. It provides a test runner with a command line interface to execute tests, filter test suites, and generate execution reports. The framework supports in-source unit testing and allows for the complete removal of testing logic from compiled binaries via preprocessor stripping to eliminate performance overhead in production environments. It also enables cross-binary test registry sharing, allowing one executable to utilize the test runner of another. Capabilities include parameterized testing
nextest is a high-performance test execution framework and Rust test runner designed to manage parallelism, retries, and timeouts. It serves as a test recording system that captures execution metadata and outputs into archives for later failure analysis and replay. The project distinguishes itself as a flakiness detection tool, identifying unstable tests through stress loops and automated retry policies. It also functions as a CI test orchestrator, capable of partitioning test suites across multiple workers and exporting results in standardized JUnit XML and JSON formats. The framework provi
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
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 debu
Catch is a C++ testing toolset providing frameworks for unit testing, behavior-driven development, and micro-benchmarking. It serves as a utility for software quality assurance and test-driven development, allowing developers to validate code correctness and measure the execution time of small code fragments. The project features a header-only distribution, enabling integration by including a single file. It utilizes expression-decomposition assertions to provide detailed failure messages and employs a self-registering test discovery system that uses macros to register test cases without manu
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
This project is a parallel test runner and shell command executor designed to reduce total runtime by executing test suites across multiple CPU cores. It functions as a test suite load balancer and a CI test process manager that coordinates global setup, teardown, and exit codes for continuous integration pipelines. The tool acts as a test database orchestrator by creating and managing unique database instances mapped to parallel processes, which prevents data collisions. It distributes tests into balanced groups based on file size or recorded runtimes to optimize execution time and avoid bot
JUnit 4 is a unit testing framework for Java that provides a structured approach to writing and running automated tests. At its core, it uses annotation-based test discovery to automatically identify test methods, and a pluggable runner architecture that controls how test classes are discovered, instantiated, and executed. The framework builds test execution around a chain of Statement objects, each wrapping the next to layer behaviors such as timeouts and retries, and uses Java reflection to dynamically invoke test methods and access private fields for setup and teardown operations. The fram
Swift Testing is a testing framework for the Swift programming language that provides a structured environment for validating code behavior. It utilizes compile-time macro discovery to register test functions and organizes them into hierarchical suites, allowing for granular control over test execution and metadata tagging. The framework distinguishes itself through native integration with Swift concurrency models, enabling parallel test execution to reduce verification time. It supports parameterized testing, which allows developers to run identical logic across multiple input values, and pr
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
This project is a JVM testing framework that provides a foundation for defining and running automated tests using a pluggable engine architecture. It functions as a JVM test orchestrator and a modular test engine API, allowing multiple testing engines to be grouped and executed as a single coordinated unit. The framework includes a platform launcher for discovering and executing test suites from build systems, integrated development environments, or the command line. It enables the creation of custom testing frameworks through a standardized interface that integrates into a shared execution p
pytest is a testing framework for Python that provides a command-line runner for discovering and executing test suites. It is built on a modular architecture that uses standard language assertions to verify code correctness, automatically inspecting expressions to provide detailed failure reports without requiring specialized assertion methods. The framework distinguishes itself through a dependency injection system that manages setup and teardown logic by automatically resolving and injecting resources into test functions. It also features a hook-based plugin architecture that allows for dee
Pest is a testing framework for PHP that provides a comprehensive suite for executing unit, integration, and end-to-end tests. It functions as an automated testing tool that prioritizes developer experience and readability through a concise, expressive syntax for defining test suites. By wrapping an established testing foundation, it maintains compatibility with existing ecosystem tools while offering a specialized interface for writing and organizing automated tests. The framework distinguishes itself through integrated support for parallel test execution, which distributes suites across mul
xctool is a command line wrapper for xcodebuild designed for iOS and macOS continuous integration. It functions as a parallel test runner, build log processor, and report generator to automate the build and test pipeline for Apple platforms. The tool distributes test bundles across multiple CPU cores to reduce execution time and provides the ability to run targeted subsets of tests by filtering for specific schemes, classes, or methods. It simplifies build management by allowing command line arguments to be persisted and loaded from JSON configuration files. It transforms verbose build logs
rspec-rails is a testing framework that integrates RSpec with Ruby on Rails to provide behavior-driven development tools. It serves as a suite for defining application behavior through a conversational syntax, providing a specialized toolkit for creating behavioral specifications for models, controllers, and views. The project distinguishes itself through automated test generation, providing a command-line interface to create boilerplate specification files for Rails components such as models, controllers, and background jobs. It further differentiates its capabilities with a comprehensive mo
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
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
Pester is a PowerShell testing framework and behavior-driven development tool used to write and run automated tests for scripts and modules. It defines and verifies software behavior through human-readable specifications to validate that code behaves as expected. The project includes a native mocking library that replaces real functions and commands with controlled implementations, allowing for the isolation of code and verification of command invocations without altering the system environment. It also functions as a code coverage tool that measures the percentage of executed lines during te
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
Cargo is the official build system and package manager for the Rust programming language. It provides a unified command-line interface that orchestrates the entire development lifecycle, including compiling source code, managing complex dependency graphs, running tests, and distributing packages through a centralized registry. By utilizing declarative manifest files, it ensures that builds remain reproducible and consistent across different environments. The tool distinguishes itself through its deep integration with the Rust compiler and its sophisticated approach to project management. It f
Crystal is a statically typed, compiled programming language designed for high performance and memory safety. It leverages an LLVM-based compiler to translate source code into optimized machine-executable binaries, while its type-inference-based static analysis enforces strict safety rules during the build process. The language distinguishes itself through a fiber-based concurrent runtime that manages lightweight execution units for asynchronous input and output without blocking the main process. It also features a powerful compile-time macro system that allows for the inspection and transfor
Hypothesis is a Python property-based testing library and data generation engine. It enables the discovery of edge cases and bugs by generating a wide range of randomized inputs based on defined strategies and shrinking complex failing examples to their smallest possible form. It also functions as a state machine testing framework to verify system behavior across sequences of interdependent operations. The project features a fuzzing integration layer that converts raw byte buffers from coverage-guided fuzzers into structured test cases. It includes a persistence mechanism to store and synchro
Maestro is a declarative mobile and web UI automation framework designed for end-to-end testing. It operates by querying the native accessibility tree of an application, allowing for black-box testing without requiring source code instrumentation or platform-specific dependencies. The framework distinguishes itself through a unified command syntax that abstracts interactions across Android, iOS, and web environments. It features a dynamic synchronization engine that automatically pauses test execution to account for non-deterministic animations and network-dependent content loading, ensuring
Playwright is a comprehensive browser automation framework designed for end-to-end testing and web workflow automation. It provides a unified API to drive web applications across multiple browser engines, enabling developers to simulate complex user interactions, perform web scraping, and validate application behavior in consistent, isolated environments. The framework distinguishes itself through a web-first testing paradigm that prioritizes stability and resilience. By utilizing an auto-waiting actionability engine and accessibility-tree-based locators, it eliminates common sources of test
Torch7 is a scientific computing environment and tensor computation library used for deep learning research and numerical analysis. It functions as a Lua-based framework for training neural networks and learning agents, providing a toolkit for implementing architectures and training through reinforcement learning algorithms. The project is distinguished by its tight integration with C, utilizing a binding layer to map high-level scripting to low-level C structures for direct memory access. It supports hardware-accelerated computation by offloading linear algebra and convolution operations to
Catch2 is a comprehensive framework for C++ software validation, providing an environment for unit testing, integration verification, and performance analysis. It enables developers to define and execute automated test suites and micro-benchmarks directly within their applications. The framework is distinguished by its header-only distribution, which allows for integration into existing build systems without requiring complex external dependencies. It utilizes a hierarchical section-based execution model that supports behavior-driven testing, allowing for shared setup and teardown logic acros
vim-test is a Vim extension and multi-language test orchestrator that automatically detects and executes test suites directly from the editor. It functions as a configurable framework for triggering CLI-based testing across diverse programming languages, mapping source files to their corresponding tests and running them via language-specific tools. The system distinguishes itself through a customizable runner framework that allows for the definition of custom execution logic and flags. It utilizes a pluggable architecture to support various testing frameworks and languages by mapping identifi
Unity is a lightweight unit testing framework for C, providing the assertion library, test runner, and reporting mechanisms required to verify code correctness. It functions as core testing infrastructure for organizing and executing unit tests in C environments. The framework is designed for system-level and embedded software validation, with specific capabilities for verifying firmware and hardware drivers. It focuses on memory integrity and pointer validity, allowing for the validation of pointer states and the inspection of raw memory blocks. The toolset covers a broad range of compariso
This repository provides a collection of reference implementations and patterns for testing Android applications. It serves as a guide for developers to integrate standard testing libraries and frameworks into their projects, covering the full spectrum of verification from local business logic to complex interface interactions. The project distinguishes itself by demonstrating how to configure and execute tests across diverse environments, including local virtual machines and physical devices or emulators. It provides specific patterns for validating inter-application communication, automatin
Create React App is a command-line tool that generates a pre-configured project structure and build pipeline for React web applications. It serves as a frontend project scaffold, providing a set of predefined directory structures and dependencies to start development without manual compiler or bundler setup. The tool manages a complete frontend build pipeline that compiles, minifies, and optimizes code into production-ready bundles with hashed filenames. It also includes a configuration tool for progressive web app standards, implementing web app manifests and service workers for offline func