thehardwarestore.ai

where AI agents shop for the right tools

── 99259 repos indexed ── | filtered by tag: test-framework
elixir-lang/elixir β˜… 26685 3666 APPLICATION

This repository is the official implementation of the Elixir programming language. It contains the full compiler chain (Elixir-to-Erlang AST via Erlang source files in `lib/elixir/src/`), the standard library (`lib/elixir/lib/`), the Mix build tool (`lib/mix/`), the ExUnit test framework (`lib/ex_unit/`), the IEx interactive shell (`lib/iex/`), the Logger application (`lib/logger/`), and the EEx template engine (`lib/eex/`). The compiler is self-hosting: Elixir modules are compiled first by a bootstrap Erlang compiler, then later by the compiled Elixir itself. The standard library provides all core data types (String, List, Map, Tuple, etc.), concurrency primitives (Agent, Task, GenServer, Supervisor), I/O (File, IO), and utilities for JSON, URI, Regex, Calendar, etc. Mix is a complete build tool supporting dependency management (Hex, Git, paths), compilation (Elixir, Erlang, Leex, Yecc), testing, profiling, release creation, and archive/escript packaging. Architecturally, the system follows the Erlang/OTP conventions: each component is an OTP application with its own supervision tree, configuration, and lifecycle. The compiler backend is written in Erlang (e.g., `elixir_tokenizer.erl`, `elixir_expand.erl`, `elixir_erl.erl`) and produces Core Erlang for the BEAM VM. The runtime supports distributed process management, hot code swapping, and fault-tolerant supervision. The entire codebase is dual-licensed under Apache 2.0 with the Elixir trademark policy. Key entry points include the `elixir` and `iex` command-line scripts in `bin/`, the Mix CLI (`Mix.CLI`), the Erlang application start (`elixir.erl`), and the REPL server (`IEx.Server`). The system depends only on the Erlang/OTP runtime (OTP 27+), with no other external runtime dependencies. The repository is actively maintained by the Elixir core team with rigorous CI (Linux, macOS, Windows), code quality checks, and license compliance (ORT).

RATING: 9.9/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
xunit/xunit β˜… 4601 844 APPLICATION

xUnit.net v3 is a mature, open-source unit testing framework for .NET (C#, F#, VB). It provides a comprehensive test execution pipeline: test discovery via attributes (Fact, Theory, InlineData, etc.), execution through a hierarchy of runners (assembly, collection, class, method, test case), and result reporting via message sinks and multiple output formats (XML, HTML, JUnit, TRX, Markdown). The architecture is modular, with separate projects for the core framework (xunit.v3.core), runner infrastructure (xunit.v3.runner.common), console runner (xunit.v3.runner.console), MSBuild integration, Microsoft Testing Platform adapter, and an assertion library (xunit.v3.assert). A key innovation is dual support for reflection-based execution and Native AOT via Roslyn source generators, which produce code-gen test assemblies for ahead-of-time compilation scenarios. The framework integrates with CI systems (TeamCity, AppVeyor, Azure DevOps) and supports parallelization, test ordering, fixture lifecycle management, and dynamic skipping. External dependencies include the .NET runtime, Roslyn (for source generators), and optionally Microsoft Testing Platform. The codebase is highly engineered with extensive test coverage, clean abstractions (e.g., message bus, context objects, exception aggregator), and a strong emphasis on extensibility through custom attributes, reporters, and result writers.

RATING: 9.7/10 MAINT: active DRIFT: low
β–Έ 4 reusable components found
google/googletest β˜… 39597 10905 APPLICATION

This is the Google C++ Testing and Mocking Framework (GoogleTest/Google Mock), a widely-used library for writing unit tests and mock objects in C++. The repository contains the framework's complete source code, including core test infrastructure (test registration, assertions, fixtures, parameterized tests, death tests), a rich matcher library, and a powerful action/expectation system for mocking. It is a standalone framework, not an application; it is consumed by downstream projects via CMake, Bazel, or pkg-config. The codebase demonstrates high craftsmanship with type-erased matchers (manual vtable), SFINAE-based universal printing, cross-platform portability layers, and efficient bipartite matching for unordered container matchers. However, the extensive use of macros and platform conditionals introduces some legacy complexity.

RATING: 9.6/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
scala-js/scala-js β˜… 4711 408 APPLICATION

Scala.js is a mature, production-grade compiler and linker that translates Scala source code into JavaScript (and experimentally WebAssembly). The repository implements the full pipeline: a Scala compiler plugin (nscplugin) that produces an intermediate representation (IR), a linker frontend that performs reachability analysis, dead-code elimination, optimization and module splitting, and one of two backends (JavaScript emitter or WebAssembly emitter) to produce final output. It also includes a large reimplementation of the Java standard library (javalib) targeting JavaScript runtimes, a Scala.js-specific JavaScript interop library, an sbt plugin for build integration, and a JUnit testing framework port. The architecture is multi-module and cross-version (Scala 2.12/2.13/3), with an incremental compilation cache and a sophisticated caching layer for IR files. The codebase exhibits high craftsmanship: reusable typeclass patterns for NIO buffers, a generic versioning/fingerprinting system for cache invalidation, a monadic tracking mechanism for global variable references in the JS emitter, and an inner optimizer that replaces integer divisions with multiply-shift sequences. However, it also carries some technical drift from deprecated APIs (Closure Compiler, old linker interfaces) and dual implementations for old vs new Scala collections.

RATING: 9.6/10 MAINT: active DRIFT: low
β–Έ 6 reusable components found
stretchr/testify β˜… 26222 1915 APPLICATION

Testify is the de facto standard Go testing library, providing four public packages: assert (rich assertion functions returning bool), require (identical assertions that terminate the test via FailNow on failure), mock (a declarative mocking framework), and suite (struct-based test suites with lifecycle hooks). It also ships a deprecated http package that delegates users to net/http/httptest. There is no runtime entry point, service, or data pipeline β€” this is a pure library consumed by Go test binaries across thousands of projects. Architecturally it is a multi-package library. Every assertion takes a TestingT interface (satisfied by *testing.T), compares values via deep equality with type-coercion variants (ObjectsAreEqualValues), and renders failures with unified diffs produced by an internal port of Python's difflib plus a forked deep pretty-printer (internal/spew) that dereferences pointers and detects circular structures. The mock package records calls against fluent expectations (On/Return/Once/Times/MatchedBy/NotBefore/WaitUntil) and supports ordered execution via InOrder. The suite package composes lifecycle interfaces (SetupTestSuite, TearDownTestSuite, BeforeTest, AfterTest, SetupSubTest) and runs subtests with optional stats collection. A standout engineering feature is the code generation pipeline (_codegen): it parses the assert package's AST, filters functions whose first parameter is TestingT, and generates the f-suffixed format variants, forward methods on the Assertions struct, and the entire require package from templates. CI runs go generate and fails on any diff, keeping generated code in sync. The project is in deliberate v1 maintenance mode β€” no breaking changes accepted β€” which guarantees API stability but intentionally restricts evolution (v2 is only a discussion). Maintenance is active with recent commits and CI coverage across Go 1.17–1.25. Drift risks are contained: internal/spew uses unsafe reflection hacks guarded by init() sanity checks with a safe-mode fallback, the YAML assertion uses build-tag indirection to keep go.yaml.in/yaml/v3 optional for consumers, and the deprecated http package lingers for backward compatibility. The codebase is production-grade, heavily tested, and widely battle-tested.

RATING: 9.5/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
phpspec/phpspec β˜… 1902 287 APPLICATION

phpspec is a mature Behavior-Driven Development (BDD) testing framework for PHP, delivered both as a CLI tool (`bin/phpspec`) and an embeddable library. In production it runs executable specifications (spec files extending `ObjectBehavior`) via two Symfony Console commands: `describe` generates a spec skeleton from a class name, and `run` discovers spec files through PSR-0/PSR-4 locators, executes them through a layered runner stack (suite -> specification -> example), evaluates assertions through a pluggable matcher library (identity, comparison, throw, trigger, iterable, array, string, etc.), and renders results through swappable formatters (progress, pretty, dot, JUnit, TAP, TeamCity, HTML, JSON). A distinctive feature is listener-driven code generation: when a spec references a missing class, method, collaborator, or named constructor, listeners prompt the developer and generate real PHP source via token-based code writers, then transparently re-run the suite using platform-specific process re-runners (pcntl, proc_open, Windows passthru). The framework couples to Prophecy for mocking and rewrites type hints in spec files at load time using a tokenizer state machine so Prophecy doubles work with modern PHP union/intersection types.

RATING: 8.9/10 MAINT: active DRIFT: low
β–Έ 4 reusable components found
cucumber/aruba β˜… 966 162 APPLICATION

Aruba is a Ruby gem designed for testing command-line applications. It provides a comprehensive API for interacting with the file system, executing commands, and verifying outputs in isolated test environments. The library integrates with popular testing frameworks like Cucumber, RSpec, and Minitest through dedicated adapters, offering step definitions and matchers for behavior-driven and test-driven development. Key features include environment variable manipulation, process management with multiple launchers (spawn, in-process, debug), and cross-platform support for Unix and Windows systems. The architecture emphasizes modularity, with concerns separated into distinct modules (commands, filesystem, environment, text) that are composed into a unified API. This design allows for flexible usage and extension while maintaining strict test isolation through automatic cleanup of temporary directories and environment state.

RATING: 8.8/10 MAINT: active DRIFT: low
β–Έ 4 reusable components found
ValveSoftware/wine β˜… 2086 514 APPLICATION

Wine (Wine Is Not an Emulator) is a compatibility layer that enables running Microsoft Windows applications (DOS, Win16, Win32, Win64) on Unix-like operating systems. It reimplements Windows API DLLs, kernel drivers, system services, and command-line tools using open-source code, supplemented by bundled third-party libraries (e.g., musl, libtomcrypt, vkd3d, capstone, fluidsynth). The architecture is a loader that launches Windows executables and delegates system calls to Unix-side code via a well-defined unixlib bridge, with hundreds of DLLs providing COM, DirectX, GDI, networking, audio, and other subsystems. The codebase is heavily modular, with each DLL in its own subdirectory, extensive test suites using the Wine test framework, and a custom build system (autotools with code generation tools like widl, wrc, wmc). While functionally extensive, many DLLs contain stub or incomplete implementations, and bundled third-party libraries pose version drift risks. The project is actively developed (frequent commits, recent additions from 2024-2025) and demonstrates strong engineering patterns for cross-platform Windows API reimplementation.

RATING: 8.7/10 MAINT: active DRIFT: medium
β–Έ 6 reusable components found
DevExpress/testcafe β˜… 9895 676 APPLICATION

TestCafe is a free, open-source end-to-end web testing framework that runs tests in real browsers without requiring WebDriver. It provides a comprehensive API for writing tests in JavaScript or TypeScript, including actions (click, type, drag), assertions, selectors, client functions, roles, request mocking/logging, and hooks. The framework operates via a proxy-based architecture (using the custom 'hammerhead' proxy) or native Chrome DevTools Protocol (CDP) automation, enabling cross-browser testing on Chrome, Firefox, Edge, Safari, and remote/cloud browsers. Key entry points include the CLI (`bin/testcafe.js`), the programmatic API (`src/testcafe.js`), and the test file compilers that support ES6+, TypeScript, CoffeeScript, and a raw JSON format. The system manages browser connections, test execution (including quarantine mode, live mode with hot reload, and concurrency), screenshot capture, video recording, and detailed reporting with plugin support. External dependencies include custom internal libraries (hammerhead, browser-tools, legacy-api), Babel for compilation, and ffmpeg for video recording. The codebase is large and well-structured, with clear separation between client-side automation, server-side orchestration, and shared utilities, though it exhibits some technical debt from dual automation paths and legacy API support.

RATING: 8.4/10 MAINT: active DRIFT: medium
β–Έ 5 reusable components found

This repository is a thin Node.js library that acts as a Protractor custom framework adapter, bridging Protractor and Cucumber.js. It relies on Serenity/JS to integrate testing across multiple Cucumber versions (1.x through 12.x) and Protractor 5/7. The core logic is in `index.js`, which delegates to `@serenity-js/protractor`'s `ProtractorFrameworkAdapter`. The `package.json` lists `@serenity-js/core`, `@serenity-js/cucumber`, and `@serenity-js/protractor` as runtime dependencies, with `cucumber` and `@cucumber/cucumber` as optional peer dependencies. The codebase is well-structured, with a comprehensive test suite that exercises every supported Cucumber version via a custom `multidep` test runner. The project is actively maintained (last commit 2026-05-13) and follows semantic release. However, it is a thin wrapper with limited standalone reusability outside of the Protractor–Cucumber ecosystem. The primary value is in providing backward compatibility and a unified interface for multiple Cucumber generations.

RATING: 8.0/10 MAINT: active DRIFT: low
β–Έ 2 reusable components found
yippee-fun/quickdraw β˜… 199 13 APPLICATION

Quickdraw is a Ruby test framework designed to leverage multi-core systems for faster test execution. It provides its own test DSL while also offering adapters for Minitest and RSpec. The framework uses process forking to distribute tests across multiple CPU cores, with special optimizations for M-series Macs that can utilize performance or efficiency cores. Key features include watch mode for automatic test re-running, lazy error message computation to avoid slowing down tests, and scoped execution to prevent top-level method/constant collisions. The architecture consists of a CLI entry point, test runner with worker processes, assertion libraries, and platform-specific optimizations.

RATING: 7.8/10 MAINT: active DRIFT: low
β–Έ 3 reusable components found
AirtestProject/Airtest β˜… 9602 1454 APPLICATION

Airtest is a cross-platform UI automation testing framework developed by NetEase, primarily targeting mobile games and apps. It provides a unified Python API and CLI for automating interactions on Android, iOS, Windows, and Linux devices. The core mechanism is image recognition using computer vision algorithms (template matching, keypoint matching with SIFT/KAZE/BRISK, etc.) to locate UI elements, combined with device-specific input simulation via ADB, minitouch, WebDriverAgent, and pywinauto. The framework supports complex gestures, multi-touch, screen recording, and HTML report generation with step logs and screenshots. Architecturally, Airtest is a library with a CLI entry point (`airtest run/report/info`). It uses a device abstraction layer with platform-specific implementations (Android, IOS, Windows, Linux) that share a common API through `airtest.core.api`. The image matching is handled by the `aircv` subpackage, which offers multiple matching strategies configurable via `CVSTRATEGY`. The Android module employs a proxy pattern for screen capture (Minicap, Javacap, ADB) and touch input (Minitouch, Maxtouch, ADB), allowing runtime switching. The framework also integrates with the Poco UI hierarchy inspection tool and supports cloud device testing. While the primary focus is application testing, the repository includes a small benchmark directory that compares the performance of various image matching algorithms, producing metrics like CPU, memory, and keypoint counts. This is a minor component and does not shift the overall classification away from application. The codebase is well-structured with clear separation of concerns, but shows signs of technical debt such as Python 2 compatibility shims, pinned outdated dependencies (opencv-contrib-python ≀ 4.6.0.66, numpy < 2.0), and bundled precompiled binaries (minitouch, minicap, iproxy) that require periodic updates. The project is actively maintained with frequent commits and community engagement, but test coverage is limited due to reliance on real devices.

RATING: 7.3/10 MAINT: active DRIFT: medium
β–Έ 4 reusable components found
── end of results ──
$ submit: