Category guides · published
"Best open source unit testing tools": 28 listed, sorted by GitHub stars
Metrics as of , from the GitHub or GitLab API of each repository. Refreshed monthly.
This guide covers the open-source test runners and assertion libraries in the FreeQATools unit testing category and groups them by language, role and documented parallel execution. The table is sorted by GitHub stars on each tool's fetch date, not by opinion.
What the category covers
The unit testing category holds test runners and assertion libraries for unit and integration tests, as defined on the category hub. Each tool fact in this guide links one source in the same sentence: a README, a documentation page or the tool's FreeQATools page. A fact that a project does not document appears as "not documented" in its comparison tables.
Languages
Jest is a JavaScript testing framework. Vitest is a test framework built on Vite. Mocha is a JavaScript test framework.
AVA is a test runner for Node.js. Jasmine is a BDD testing framework for JavaScript. tape is a TAP-producing test harness for Node and browsers.
JUnit is a testing framework for Java and the JVM. TestNG is a Java testing framework. Spock is a BDD-style testing framework for Java and Groovy. Kotest is a testing tool for Kotlin.
NUnit is a unit-testing framework for .NET languages. xUnit.net is a unit testing tool for C#, F# or Visual Basic code. GoogleTest is a C++ test framework. Catch2 is a unit testing framework for C++. doctest is a C++ testing framework.
pytest is a Python testing framework. Ginkgo is a testing framework for Go. Quick is a BDD testing framework for Swift and Objective-C. minitest is a Ruby testing library.
rspec-core is the RSpec component for Ruby. The rspec-core repository carries the host archive flag, so it is also listed on the Archived page.
PHPUnit is an xUnit-style testing framework for PHP. Pest is a testing framework for PHP. bats-core is a TAP-compliant framework for testing Bash scripts. Pester is a test and mock framework for PowerShell.
Runners and assertion libraries
Some unit testing entries are assertion or helper libraries used inside a test runner. AssertJ adds assertThat checks inside JUnit, TestNG or other framework tests. Chai offers assert, expect and should styles inside any JavaScript test framework. Testify provides assert, require, mock and suite packages that run with go test.
Property-based testing also appears in the unit testing category. Hypothesis adds Python property-based tests declared with the given decorator and strategies.
Parallel execution and reports
Parallel defaults differ between unit test runners. xUnit.net documents parallel test execution as on by default. JUnit runs tests in a single thread unless parallel execution is enabled. NUnit runs tests in parallel only where the Parallelizable attribute is set. tape executes tests serially.
Several unit test runners document sharding. Jest shards test suites with a shard option. Vitest shards across machines together with the blob reporter. Catch2 shards tests across processes. GoogleTest shards tests across machines through environment variables.
Documented report formats differ between unit test runners. pytest writes JUnit XML files. Catch2 reporters include XML, JUnit XML, TeamCity and TAP. Ginkgo generates JSON, JUnit XML, TeamCity and Go test JSON reports. Pest writes JUnit XML, TeamCity and TestDox output.
The Jest vs Vitest page sets the documented facts of both tools side by side. The Jest vs Mocha page uses the same row set for its pair. The GoogleTest vs Testify page is a further comparison in this category. The comparison method explains how each cell is sourced.
How this list is sorted
The quoted title is a search query, not a verdict. FreeQATools does not rank tools by opinion. The list below is sorted by GitHub stars, descending, as fetched from the repository host API on the date shown with each value.
Stars count how many accounts have starred a repository. They say nothing about fit for a given project, so the documented facts under each tool are the part to compare.
Every tool here meets the inclusion rules: an OSI-approved license, a public repository, software testing or quality as its primary purpose and at least one release or tag. Each status badge follows the status rules on the methodology page.
Open-source unit testing and test runners tools by GitHub stars
| Jest | 45,4631 | 2026-09-181v30.5.2 | 2026-09-181 | MIT | TypeScript | active |
|---|---|---|---|---|---|---|
| GoogleTest | 39,5721 | 2026-08-101v1.18.0 | 2026-09-171 | BSD-3-Clause | C++ | active |
| Testify | 26,2111 | 2026-08-191v1.12.1 | 2026-09-021 | MIT | Go | active |
| Mocha | 22,8971 | 2026-09-171v12.0.2 | 2026-09-191 | MIT | JavaScript | active |
| Catch2 | 21,4891 | 2026-08-251v3.16.0 | 2026-09-141 | BSL-1.0 | C++ | active |
| AVA | 20,8281 | 2026-05-171v8.0.1 | 2026-05-171 | MIT | JavaScript | slow |
| PHPUnit | 20,0521 | 2026-09-15113.3.4 | 2026-09-221 | BSD-3-Clause | PHP | active |
| Vitest | 17,1431 | 2026-09-151v5.0.1 | 2026-09-181 | MIT | TypeScript | active |
| Jasmine | 15,8161 | 2026-08-151v7.0.1 | 2026-08-201 | MIT | JavaScript | active |
| pytest | 14,5211 | 2026-06-1919.1.1 | 2026-09-211 | MIT | Python | active |
| Pest | 11,7231 | 2026-09-171v5.2.1 | 2026-09-181 | MIT | PHP | active |
| Quick | 9,8271 | 2024-07-231v7.6.2 | 2026-03-171 | Apache-2.0 | Swift | slow |
| Ginkgo | 9,0561 | 2026-09-171v2.33.0 | 2026-09-221 | MIT | Go | active |
| Hypothesis | 9,0031 | 2026-09-081v6.168.0 | 2026-09-081 | MPL-2.0 | Python | active |
| Chai | 8,2691 | 2025-12-221v6.2.2 | 2026-09-211 | MIT | JavaScript | active |
| JUnit | 7,0561 | 2026-08-071r6.1.3 | 2026-09-221 | EPL-2.0 | Java | active |
| doctest | 6,8681 | 2026-07-061v2.5.3 | 2026-03-271 | MIT | C++ | slow |
| bats-core | 6,2751 | 2026-07-211v1.14.0 | 2026-09-211 | MIT | Shell | active |
| tape | 5,7971 | 2026-06-181v5.10.2 | 2026-09-181 | MIT | JavaScript | active |
| Kotest | 4,7891 | 2026-09-101v6.2.5 | 2026-09-171 | Apache-2.0 | Kotlin | active |
| xUnit.net | 4,6051 | 2026-09-121v3-4.0.1 | 2026-09-221 | Apache-2.0 | C# | active |
| Spock | 3,6301 | 2025-12-111spock-2.4 | 2026-07-281 | Apache-2.0 | Java | active |
| minitest | 3,4131 | 2026-05-011v6.0.6 | 2026-07-221 | MIT | Ruby | active |
| Pester | 3,3451 | 2026-09-0916.2.0 | 2026-09-091 | Apache-2.0 | PowerShell | active |
| AssertJ | 2,8471 | 2026-01-241assertj-build-3.27.7 | 2026-09-221 | Apache-2.0 | Java | active |
| NUnit | 2,6271 | 2026-05-191v4.6.1 | 2026-09-201 | MIT | C# | active |
| TestNG | 2,0591 | 2026-01-2217.12.0 | 2026-09-221 | Apache-2.0 | Java | active |
| rspec-core | 1,2281 | 2014-02-281v2.14.8 | 2024-11-301 | MIT | Ruby | archived |
1 Fetched from the GitHub or GitLab API on . Hover a value for its own date.
Filters for language, license and status are on the unit testing and test runners category page.
Tools in this list
Each entry gives the tool's one-line summary from its README and the facts its documentation states for this category, each with its source. Facts that are not documented are left out here and marked on the comparison pages.
Jest
JavaScript testing framework with a CLI, watch mode, matchers and snapshot testing. README, read 2026-09-22
- Languages for writing tests
- JavaScript; TypeScript via Babel or ts-jest source: README
- Test authoring format
- Code (test files using test() and expect() matchers) source: README
- Parallel or distributed execution
- Worker pool sized with --maxWorkers; test suite sharding with --shard source: Docs: Jest CLI Options
- CI integration
- --ci option for CI environments (new snapshots fail instead of being written) source: Docs: Jest CLI Options
- Report formats
- Coverage reporters clover, JSON, lcov and text by default; default, summary and github-actions test reporters source: Docs: Configuring Jest
- Install method
- npm (npm install --save-dev jest) or yarn (yarn add --dev jest) source: README
GoogleTest
C++ xUnit test framework bundled with GoogleMock, with death tests, parameterized tests and automatic test discovery. README, read 2026-09-22
- Languages for writing tests
- C++ (the 1.18.x branch requires C++17) source: README
- Test authoring format
- Code (C++ TEST() and TEST_F() macros with assertions) source: Docs: GoogleTest Primer
- Parallel or distributed execution
- Test sharding across machines with GTEST_TOTAL_SHARDS and GTEST_SHARD_INDEX source: Docs: Advanced GoogleTest Topics
- Report formats
- XML (based on the junitreport Ant task) and JSON via --gtest_output source: Docs: Advanced GoogleTest Topics
- Install method
- CMake build, standalone or inside an existing CMake project source: Docs: Generic Build Instructions
Testify
Go packages for assertions, mocks and struct-based test suites that run under go test. README, read 2026-09-22
- Languages for writing tests
- Go source: README
- Test authoring format
- Code (Go test functions with the assert, require, mock and suite packages, run with go test) source: README
- Install method
- go get github.com/stretchr/testify source: README
Mocha
JavaScript test framework for Node.js and the browser with BDD, TDD and other interfaces. README, read 2026-09-22
- Languages for writing tests
- JavaScript; TypeScript through Node.js type stripping or a loader such as tsx source: Docs: TypeScript
- Test authoring format
- Code with a selectable interface: BDD (default), TDD, Exports, QUnit, Require source: Docs: About Interfaces
- Parallel or distributed execution
- --parallel flag running test files in a pool of worker processes source: Docs: Parallel mode
- CI integration
- GitHub Actions reporter (--reporter github-actions) with inline failure annotations source: Docs: GitHub Actions reporter
- Report formats
- Spec (default), Dot, TAP, JSON, JSON Stream, HTML, XUnit, Markdown, Doc, GitHub Actions and others source: Docs: About Reporters
- Install method
- npm, pnpm or yarn dev dependency (npm i -D mocha) source: Docs: Getting Started
Catch2
Unit testing framework for C++ with basic micro-benchmarking and BDD-style macros. README, read 2026-09-22
- Languages for writing tests
- C++ source: README
- Test authoring format
- Code (C++ test cases with the TEST_CASE and REQUIRE macros) source: Docs: Tutorial
- Parallel or distributed execution
- Test sharding across processes (--shard-count, --shard-index) source: Docs: Command line
- CI integration
- CI and tooling integration guide page source: Docs: Tooling integration (CI, test runners and so on)
- Report formats
- XML, JUnit XML, TeamCity, TAP, Automake, SonarQube source: Docs: Tooling integration (CI, test runners and so on)
- Install method
- CMake (find_package or FetchContent); vcpkg (vcpkg install catch2) source: Docs: CMake integration
AVA
Test runner for Node.js with concurrent test execution, per-file isolation, and a TAP reporter. README, read 2026-09-22
- Languages for writing tests
- JavaScript on Node.js; TypeScript definitions included source: README
- Test authoring format
- Code (JavaScript test files using the test() function from ava) source: README
- Parallel or distributed execution
- Concurrent tests; each test file in its own worker thread source: Docs: Writing tests
- CI integration
- Splits test files across parallel CI builds via ci-parallel-vars; GitHub Actions matrix recipe source: Docs: Splitting tests in CI
- Report formats
- Human-readable reporter (default), TAP source: Docs: Command line (CLI)
- Install method
- npm (npm init ava, or npm install --save-dev ava); Yarn (yarn add ava --dev) source: README
PHPUnit
xUnit-style testing framework for PHP, distributed as a PHAR archive or through Composer. README, read 2026-09-22
- Languages for writing tests
- PHP source: README
- Test authoring format
- Code (PHP test classes extending TestCase with test* methods) source: Docs: Writing Tests for PHPUnit
- Report formats
- JUnit XML, TeamCity, TestDox (HTML and plain text), event logs as plain text source: Docs: The Command-Line Test Runner
- Install method
- PHAR download; Composer (composer require --dev phpunit/phpunit) source: Docs: Installation
Vitest
Vite-based test framework for JavaScript and TypeScript with Jest-compatible APIs, snapshots, mocking, coverage and a browser mode. README, read 2026-09-22
- Languages for writing tests
- JavaScript and TypeScript, with JSX source: README
- Test authoring format
- Code (describe/it test files with Chai and Jest-compatible expect) source: README
- Parallel or distributed execution
- Test files in parallel workers; sharding across machines (--shard with the blob reporter) source: Docs: Improving Performance
- CI integration
- GitHub Actions reporter with annotations for test failures source: Docs: Reporters
- Report formats
- Default, verbose, tree, dot, JUnit XML, JSON, HTML, TAP, TAP flat, GitHub Actions, blob; custom reporters source: Docs: Reporters
- Install method
- npm (npm install -D vitest); yarn, pnpm and bun also documented source: Docs: Getting Started
Jasmine
Behavior-driven development testing framework for JavaScript that runs in browsers and Node.js without DOM dependencies. README, read 2026-09-22
- Languages for writing tests
- JavaScript source: README
- Test authoring format
- Code (JavaScript specs with describe and it functions) source: Docs: Your first suite
- Parallel or distributed execution
- Parallel processes in Node.js via --parallel=<n> (5.0.0 and later) source: Docs: Running Specs in Parallel
- Report formats
- Console reporter by default; custom reporters via --reporter source: Docs: Using Jasmine with Node
- Install method
- npm (npm install --save-dev jasmine, then npx jasmine init) source: Docs: Using Jasmine with Node
pytest
Python testing framework with plain assert introspection, test auto-discovery, fixtures and a plugin architecture. README, read 2026-09-22
- Languages for writing tests
- Python (3.10+ or PyPy3) source: README
- Test authoring format
- Code (Python test_ functions and Test classes with plain assert) source: Docs: Get Started
- Parallel or distributed execution
- pytest-xdist plugin distributes tests to CPUs and remote hosts source: Docs: How to install and use plugins
- CI integration
- Detects CI through the CI and BUILD_NUMBER (Jenkins) environment variables source: Docs: CI Pipelines
- Report formats
- Terminal output; JUnit XML (--junit-xml=path) source: Docs: Managing pytest's output
- Install method
- pip (pip install -U pytest) source: Docs: Get Started
Pest
PHP testing framework requiring PHP 8.4 or later, with a drift plugin for PHPUnit tests and a browser testing plugin. README, read 2026-09-22
- Languages for writing tests
- PHP (8.4+) source: Docs: Installation
- Test authoring format
- Code (PHP closures passed to test(), it() and describe()) source: Docs: Writing Tests
- Parallel or distributed execution
- Multiple processes via --parallel; --processes sets the process count source: Docs: Optimizing Tests
- CI integration
- pest --ci command; examples for GitHub Actions, GitLab CI/CD, Bitbucket Pipelines and Chipper CI source: Docs: Continuous Integration
- Report formats
- JUnit XML, TeamCity, TestDox (HTML and plain text), event logs as plain text source: Docs: CLI API Reference
- Install method
- Composer (composer require pestphp/pest --dev --with-all-dependencies) source: Docs: Installation
Quick
BDD testing framework for Swift and Objective-C with describe, context and it blocks, paired with Nimble matchers. README, read 2026-09-22
- Languages for writing tests
- Swift, Objective-C source: README
- Test authoring format
- Code (QuickSpec classes with describe, context and it blocks) source: Docs: Organized Tests with Quick Examples and Example Groups
- Install method
- Git submodules, CocoaPods (pod 'Quick'), Swift Package Manager source: Docs: Installing Quick
Ginkgo
Go testing framework with a BDD-style spec DSL, parallel runs and a CLI, paired with Gomega matchers. README, read 2026-09-22
- Languages for writing tests
- Go source: README
- Test authoring format
- Code (Go specs with the Describe, Context, When and It DSL) source: README
- Parallel or distributed execution
- Parallel spec runs via ginkgo -p source: README
- CI integration
- CI configuration section: a documented flag set for CI runs, ginkgo invoked via go run source: Docs: Ginkgo
- Report formats
- Console; JSON, JUnit XML, TeamCity, Go test JSON; custom reporting source: Docs: Ginkgo
- Install method
- Go modules (go install github.com/onsi/ginkgo/v2/ginkgo) source: Docs: Ginkgo
Hypothesis
Property-based testing library for Python that generates inputs from strategies and reports minimal failing examples. README, read 2026-09-22
- Languages for writing tests
- Python source: README
- Test authoring format
- Code (Python property-based tests with @given and strategies) source: README
- Parallel or distributed execution
- Thread-safe since 6.136.9; separate tests or the same test can run in multiple threads source: Docs: Compatibility
- CI integration
- Settings profiles, for example a CI profile source: Docs: Configuring test settings
- Install method
- pip (pip install hypothesis); optional extras source: README
Chai
BDD and TDD assertion library for Node.js and the browser with assert, expect and should styles. README, read 2026-09-22
- Languages for writing tests
- JavaScript (Node.js and browsers) source: README
- Test authoring format
- Code: assert, expect or should assertion styles inside any JavaScript test framework source: README
- Install method
- npm (npm install --save-dev chai); browser build from a self-hosted copy or an npm CDN source: Docs: Installation
JUnit
Java testing framework made of the JUnit Platform, the Jupiter programming model and the Vintage engine. README, read 2026-09-22
- Languages for writing tests
- JVM languages (the JUnit Platform launches testing frameworks on the JVM) source: Docs: Overview
- Test authoring format
- Code: JUnit Jupiter programming model (@Test methods), plus a Vintage engine for JUnit 3 and 4 tests source: Docs: Overview
- Parallel or distributed execution
- Opt-in parallel execution (junit.jupiter.execution.parallel.enabled); sequential in a single thread by default source: Docs: Parallel Execution
- Report formats
- XML reports in Open Test Reporting and legacy formats (junit-platform-reporting) source: Docs: JUnit Platform Reporting
- Install method
- Gradle or Maven dependency (org.junit.jupiter:junit-jupiter) source: Docs: Build Support
doctest
C++11 testing framework that lets tests sit inside production code and be compiled out of binaries. README, read 2026-09-22
- Languages for writing tests
- C++11 and later (tag 1.2.9 for C++98) source: README
- Test authoring format
- C++ code with test macros, in separate test files or directly in production code source: README
- Parallel or distributed execution
- Test cases run serially; parallel runs by invoking the executable several times with different test ranges source: Docs: FAQ
- Report formats
- Console, doctest XML, JUnit-compatible XML; custom reporters source: Docs: Reporters
- Install method
- Single header doctest.h (download, or CMake find_package or FetchContent) source: Docs: Build systems
bats-core
TAP-compliant testing framework for Bash scripts and other UNIX programs, with tests written as Bash files. README, read 2026-09-22
- Languages for writing tests
- Bash (3.2 or above) source: README
- Test authoring format
- Bash script files with @test blocks source: README
- Parallel or distributed execution
- --jobs parameter, using GNU parallel or a compatible replacement; serial by default source: Docs: Usage
- CI integration
- TAP output when run from a continuous integration system source: Docs: Usage
- Report formats
- pretty, TAP, TAP13, JUnit; custom formatter executables; report files via --report-formatter source: Docs: Usage
- Install method
- npm (bats), Homebrew (bats-core), Linux distribution packages, Docker image bats/bats, install.sh from source source: Docs: Installation
tape
Test harness for Node and browsers that produces TAP output, with a minimal core extended by modules. README, read 2026-09-22
- Languages for writing tests
- JavaScript (Node.js and browsers) source: README
- Test authoring format
- Code: JavaScript test files that require tape and call test() with t assertions source: README
- Parallel or distributed execution
- Tests execute serially source: README
- CI integration
- --no-only flag for CI environments (fails the run if an only test exists) source: README
- Report formats
- TAP text stream, or an object stream (objectMode); separate npm modules read TAP source: README
- Install method
- npm (npm install tape --save-dev) source: README
Kotest
Kotlin testing tool with separate test framework, assertions and property testing modules for JVM and multiplatform targets. README, read 2026-09-22
- Languages for writing tests
- Kotlin (JVM, JavaScript, Native and Wasm targets) source: Docs: Setup
- Test authoring format
- Code: Kotlin spec classes using the Kotest DSL in testing styles such as FunSpec and DescribeSpec source: Docs: Writing Tests
- Parallel or distributed execution
- Specs and tests can be launched concurrently (Kotest 6 concurrency modes) source: Docs: Concurrency
- Report formats
- JUnit XML via the kotest-extensions-junitxml module; HTML reporter extension source: Docs: JUnit XML
- Install method
- Gradle dependency io.kotest:kotest-runner-junit5 on the JVM; Kotest Gradle plugin for multiplatform source: Docs: Setup
xUnit.net
Unit testing tool for C#, F# or Visual Basic code on .NET and .NET Framework. README, read 2026-09-22
- Languages for writing tests
- C#, F#, Visual Basic source: README
- Test authoring format
- Code: test methods marked [Fact] or [Theory] in .NET test projects source: Docs: Getting Started with xUnit.net v3
- Parallel or distributed execution
- Parallel test execution, on by default since version 2; conservative and aggressive algorithms source: Docs: Running Tests in Parallel
- CI integration
- Azure DevOps Pipelines guide (Visual Studio Test task) source: Docs: Getting Test Results in Azure DevOps Pipelines
- Report formats
- xUnit.net XML (v2 format) from the console and MSBuild runners; XSL-T transforms to HTML and NUnit source: Docs: xUnit.net XML Format v2
- Install method
- .NET templates (dotnet new install xunit.v3.templates) and NuGet packages such as xunit.v3 source: Docs: Getting Started with xUnit.net v3
Spock
BDD-style testing and specification framework for Java and Groovy, built on the JUnit Platform. README, read 2026-09-22
- Languages for writing tests
- Groovy specifications for Java and Groovy applications source: Docs: Introduction
- Test authoring format
- Code: Groovy specification classes with given, when, then, expect, cleanup, where and filter blocks source: Docs: Spock Primer
- Parallel or distributed execution
- Experimental parallel execution on the JUnit Platform (runner.parallel.enabled); sequential by default source: Docs: Parallel Execution
- CI integration
- Runs on continuous integration servers as a JUnit Platform engine source: Docs: Introduction
- Install method
- Maven Central (org.spockframework, spock-core module); JitPack for intermediate builds source: README
minitest
Ruby testing library with unit tests, a spec engine and benchmark assertions. README, read 2026-09-22
- Languages for writing tests
- Ruby source: README
- Test authoring format
- Ruby code: Minitest::Test classes with test_ methods, spec-style describe and it blocks, or benchmarks source: README
- Parallel or distributed execution
- Thread-based parallel test runs; MT_CPU sets the thread count source: README
- CI integration
- minitest-ci reporter plugin (listed in the README) source: README
- Report formats
- Console output; custom reporters; JUnit-style XML via the minitest-junit plugin source: README
- Install method
- RubyGems (gem install minitest) source: README
Pester
Test and mock framework for PowerShell with assertions, built-in mocking, JaCoCo code coverage and NUnit XML output. README, read 2026-09-22
- Languages for writing tests
- PowerShell (Windows PowerShell 5.1 and PowerShell 7.4 or newer) source: README
- Test authoring format
- PowerShell test files (*.Tests.ps1) with Describe, Context and It blocks source: README
- Parallel or distributed execution
- Experimental in v6: test files run concurrently, one per runspace (Run.Parallel) source: Docs: Parallel execution
- CI integration
- TFS, AppVeyor, TeamCity, Jenkins; AppVeyor example configuration source: README
- Report formats
- XML test results in NUnit 2.5, NUnit 3 or JUnit 4 schema source: Docs: Test Results
- Install method
- PowerShell Gallery (Install-Module -Name Pester -Force) source: README
AssertJ
Java assertion library with type-specific assertThat checks for JUnit, TestNG and other frameworks, plus Guava, DB and Swing modules. README, read 2026-09-22
- Languages for writing tests
- Java 8 or higher; compatible with Kotlin 1.9 or higher source: Docs: AssertJ Core quick start
- Test authoring format
- Code (Java assertThat fluent assertions inside JUnit, TestNG or other framework tests) source: README
- Install method
- Maven or Gradle dependency org.assertj:assertj-core source: Docs: AssertJ Core quick start
NUnit
Unit-testing framework for .NET languages covering unit, integration and system tests on macOS, Linux and Windows. README, read 2026-09-22
- Languages for writing tests
- All .NET languages source: README
- Test authoring format
- Code (.NET test classes and test methods referencing NUnit.Framework) source: Docs: Installation
- Parallel or distributed execution
- ParallelizableAttribute on assembly, fixture or method; tests are not parallel by default source: Docs: Parallelizable
- CI integration
- NUnit3TestAdapter package for CI build agents such as Azure DevOps and GitHub Actions source: Docs: Installation
- Report formats
- XML results: nunit3 native format, nunit2 legacy format (console runner --result option) source: Docs: Console Command Line
- Install method
- NuGet package NUnit, or the dotnet new nunit project template source: Docs: Installation
TestNG
Java testing framework with annotations, thread-pool execution, data providers and dependent methods. README, read 2026-09-22
- Languages for writing tests
- Java (Java 11 or higher) source: README
- Test authoring format
- Code (Java with TestNG annotations); suite settings in testng.xml source: Docs: TestNG Documentation
- Parallel or distributed execution
- Thread pools set by the parallel attribute (methods, tests, classes, instances) and thread-count in testng.xml source: Docs: TestNG Documentation
- Report formats
- HTML (index.html), TestNG XML reporter, XML for JUnitReport; custom reporters source: Docs: TestNG Documentation
- Install method
- Maven or Gradle dependency org.testng:testng source: Docs: TestNG Documentation
rspec-core
RSpec component for Ruby that structures executable examples and provides the rspec command; new releases come from rspec/rspec. README, read 2026-09-22
- Languages for writing tests
- Ruby source: Docs: RSpec
- Test authoring format
- Code (Ruby describe and it blocks in spec files) source: README
- Report formats
- Built-in formatters: progress (default) and documentation; output to a file with --out source: Docs: --format option
- Install method
- RubyGems (gem install rspec-core, or gem install rspec) source: README