List of unit testing frameworks


This page is a list of tables of code-driven unit testing frameworks for various programming languages. Some but not all of these are based on xUnit.

Columns (classification)

ABAP

ActionScript / Adobe Flex

Ada

AppleScript

ASCET

ASP

Bash

BPEL

C

C#

See.NET programming languages below.

C++

NameLicensexUnitFixturesGroup fixturesGeneratorsMocksExceptionsMacrosTemplatesGroupingSourceRemarks
Aeryn
API Sanity Checker Unit test generator for C/C++ libraries. Can automatically generate reasonable input data for every API function. LGPL.
ATFOriginally developed for the NetBSD operating system but works well in most Unix-like platforms. Ability to install tests as part of a release.
Bandit Header only. Automatic test registration. Specifically developed for C++11
Boost Test LibraryWith additional library "Turtle"User decisionSuites and labelsPart of Boost. Powerful dataset concept for generating test cases. Different levels of fixtures. Powerful floating point comparison.
BugEyeHeader-only. TAP output.
QA Systems CantataProprietaryCommercial. Automated unit and integration testing tool for C++. Certified testing for host or embedded systems. Code coverage and unique call interface control to simulate and intercept calls.
CasmineC++17, modeled after the Jasmine testing framework, type-safe tests, auto-registration, BDD features, focused/disabled/pending tests, flexible configuration, colored console reporter, extendable, Windows/Linux/macOS
Catch or Catch2Header only, no external dependencies, auto-registration, tdd and bdd features
CATCH-VC6VC6 port of CATCH
cfixSpecialized for Windows development—both Win32 and NT kernel mode. Compatible to WinUnit.
CputSuitesLibrary and MS Visual Studio add-in to create and run unit tests. Open Source.
CPPOCL/testReleased Under Apache 2.0, Compliant with C++ 98 and C++ 11. Works for Linux and Windows 32/64 bit using gcc, Cygwin, VS2005 and VS2015. Header file only library. Provides ability to write performance tests in a similar way to unit tests. Has some support for reporting memory leaks.
CppTestSuitesReleased under LGPL
cpptest-liteSuitesReleased under MIT. Developed for C++11.
CppUnitSuitesReleased under LGPL
NameLicensexUnitFixturesGroup fixturesGeneratorsMocksExceptionsMacrosTemplatesGroupingSourceRemarks
CppUTestSuitesLimited C++ set by design to keep usage easy and allow it to work on embedded platforms. C++ is buried in macros so the learning curve for C programmers is minimal. Ported to Symbian. Has a mocking support library CppUMock
CppUnitLiteSuites
CPUnitReleased under BSD.
CriterionSuitesUnit testing framework with automatic test registration. Needs C++11 compiler support for the C++ API. Supports theories and parameterized tests. Each test is run in its own process, so signals and crashes can be reported. Can output to multiple formats, like the TAP format or JUnit XML. Supported on Linux, OS X, FreeBSD, and Windows.
libcesterFileA robust header only unit testing framework for C and C++ programming language. Support function mocking, memory leak detection, crash report. Works on various platorms including embedded systems and compatible with various compilers. Outputs to multiple format like TAP, JunitXML, TAPV13 or plain text.
crpcutSuites within SuitesBSD 2 clause. Runs each test in its own process, guaranteeing that the test suite continues even in the event of an unexpected crash or infinite loop.
CUTESuitesCUTE with Eclipse CDT integration. Single line include, without inheritance. Mock support is provided by Mockator.
cutee
CxxTest*OptionalSuitesUses a C++ parser and code generator for test registration. * Has a framework for generating mocks of global functions, but not for generating mocks of objects.
doctestLight, feature rich C++ single header testing framework
EmbunitCommercial. Create unit tests for C/C++ and Embedded C++
ExercisixExecutablesAimed to make adding tests as fast and easy as possible.
FakeItUse the latest C++11 features to create an expressive, yet very simple, API.
FCTXFast and complete unit testing framework all in one header. Declare and write your functions in one step. No dependencies. Cross platform.
FructoseA simple unit test framework.
NameLicensexUnitFixturesGroup fixturesGeneratorsMocksExceptionsMacrosTemplatesGroupingSourceRemarks
Google C++ Mocking Framework
Google TestSupports automatic test discovery, a rich set of assertions, user-defined assertions, death tests, fatal and non-fatal failures, various options for running the tests, and XML test report generation.
HestiaSuitesOpen source. Can test servers, libraries, and applications, and embedded software. Outputs to stdout, text, html, or xml files. Has several assertions for messaging, warnings, and exceptions, as well as plain conditions.
Hippomocks
Igloo BDD style unit testing in C++
lestTiny header-only C++11 test framework
liblittletestliblittletest is a portable, one file header-only C++ library for unit testing. Supports a rich set of assertions, automatic test discovering and various options for running the tests.
libunittestlibunittest is a portable C++ library for unit testing making use of C++11.
mettle
Typemock Isolator++Commercial. Isolation/Mocking Framework for C/C++
Microsoft Unit Testing Framework for C++ProprietaryCommercial. Integrated into Microsoft Visual Studio 2012 IDE and later versions.
MockatorHeader-only mock object library and an Eclipse plug-in to create test doubles in a simple yet powerful way; leverages new C++11 language facilities while still being compatible with C++03; has built-in support for CUTE
mock++/mockcppSuitesSimple testing framework for C++
mockitoppA C++ mock object framework providing similar syntax to mockito for [|Java].
mockppSuitesA C++ mocking framework hosted by Google
NameLicensexUnitFixturesGroup fixturesGeneratorsMocksExceptionsMacrosTemplatesGroupingSourceRemarks
NanoCppUnitSuitesProof-of-concept
NullUnitSuitesLow effort, easy to use. Supports automatic test discovery, user-defined assertions, fatal and non-fatal conditions, XML test report generation, and strong support for IDE integration.
OAKUT XMLUses shared libraries / DLLs
OpmockStubbing and mocking framework for C and C++ based on code generation from headers. Does not imply modification to your existing code, so well suited for legacy code refactoring. In particular, you don't need virtual operations or abstract classes. Can check call parameters, call sequence, handle multiple implementations of a mock, and more. Includes as well a small unit testing framework, with Junit compatible xml output, but works also with any unit testing framework.
Parasoft C/C++testProprietary with proper configurationCommercial. Automated unit/component test generation and execution on host or embedded systems with code coverage and runtime error detection. Also provides static analysis and peer code review.
QtTestBuilt on the ultra cross platform Qt Library. Allows testing on Windows, Mac OS X, Linux, BSD, Symbian, and any other platform Qt can build on.
QuickCheck++Framework for automatically generating tests. Inspired by QuickCheck
QuickTest
RapiTestProprietaryFocus is safety-critical/aerospace/DO-178C software, runs on embedded targets and on-host, has code coverage.
RexoPublic DomainFramework for C89/C++ featuring automatic registration of tests and a polished API.
SafetyNetLightweight fast unit testing framework that is easy to set up and use. Works on Windows and Linux. Supports GNU C++, VC++, MinGW, QtSDK and can create test projects for VisualStudio, CodeBlocks, Eclipse, KDevelop
ShortCUT
STRIDEProprietaryCommercial. Embedded software quality solution that includes techniques for unit, API, Behavior & Integration testing as well as interactive reporting portal
NameLicensexUnitFixturesGroup fixturesGeneratorsMocksExceptionsMacrosTemplatesGroupingSourceRemarks
Symbian OS UnitBased on CxxTest
TBrunProprietaryCommercial.
Generators available across another component named TBExtreme
TessyProprietaryCommercial.
TDOGMacro TDOG is a lightweight, portable and open source C++ xUnit Testing Framework.
Test soonAuto-detectMacro Complex macro logic
Testwell CTA++ProprietaryCommercial.
tpunit++A simple, portable C++ xUnit library contained in a single header.
TrompeloeilSimple, yet powerful, single header framework for mocking. Requires C++14.
TUTTemplatesBased on templates. Automatic test registration/discovery, customizable reports generation process, various tests run options. Easy adaptable to work on Windows CE.
Unit++
unit.hppExtremely lightweight single header unit testing framework. It follows the spirit of D in regards to unit tests. Automatic test discovery. RAII style test setup that are reusable in SECTIONs.
UnitTest++SuitesUnitTest++ is free software. Simplicity, portability, speed, and small footprint are all important aspects of UnitTest++.
upp11Free software. Minimal, auto test registrations, parametrized tests, etc. C++11 only.
UquoniTestProprietaryCommercial. Adds features like easy creation of test directories, Rich Booleans in assertions, and more.
μtC++20 single header/single module, macro-free μ/Unit Testing Framework with no dependencies.
VectorCAST/C++ProprietaryCommercial. Automated unit and integration testing, and code coverage.
Visual AssertUnit-Testing Add-In for Visual Studio. Based on the cfix testing framework.
WinUnitFocused more toward C/C++ than.NET developers
NameLicensexUnitFixturesGroup fixturesGeneratorsMocksExceptionsMacrosTemplatesGroupingSourceRemarks
xTestsDepends on STLSoft C & C++ Libraries
xUnit++

Supports running tests concurrently. Macros are only used for test setup, not for test assertions.
tinytestStandalone, no dependencies, header-only.
sTestLightweight. Simple to use and write tests quickly. Counting, grouping and merging tests. Easy to modify output. Needs C++11.
NameLicensexUnitFixturesGroup fixturesGeneratorsMocksExceptionsMacrosTemplatesGroupingSourceRemarks

Cg

CFML (ColdFusion)

Clojure

Cobol

Common Lisp

Crystal

Curl

DataFlex

Delphi

Emacs Lisp

Erlang

Fortran

F#

Go

Groovy

All entries under Java may also be used in Groovy.
NamexUnitSourceRemarks
easybBDD
SpockBDD with built-in Mocking and Spy capabilities.
GmockMocking Framework

Haskell

Haxe

HLSL

Igor Pro

ITT IDL

Internet

Java

JavaScript

Lasso

LaTeX

LabVIEW

NamexUnitSourceRemarks
LabVIEW Unit Test FrameworkGenerate test harnesses for VIs in LabVIEW automatically.
VI Testernative LabVIEW object-oriented implementation of xUnit framework. Unit tests are written as VIs in LabVIEW.
Carayanative LabVIEW implementation of xUnit framework.
InstaCoverageLabVIEW unit testing framework with fast code coverage measurement.

LISP

NamexUnitSourceRemarks
FiveAM
LIFT
lisp-unit

Logtalk

NamexUnitSourceRemarks
lgtunitSupports code coverage at the predicate clause level, QuickCheck, plus TAP and xUnit output formats.

Lua

NamexUnitSourceRemarks
LuaUnit
lunit

MATLAB

.NET programming languages

Objective-C

OCaml

Object Pascal (Free Pascal)

PegaRULES Process Commander

Perl

PHP

PowerBuilder

PowerShell

Progress 4GL

Prolog

Puppet

Python

R programming language

Racket

REALbasic

Rebol

RPG

Ruby

SAS

Scala

Scilab

Scheme

Shell

Simulink

Smalltalk

SQL and Database Procedural Languages

SQL

MySQL

PL/SQL

IBM DB2 SQL-PL

PostgreSQL

Transact-SQL

Swift

SystemVerilog

TargetLink

Tcl

TinyOS/nesC

TypeScript

VHDL

Visual FoxPro

Visual Basic (VB6.0)

For unit testing frameworks for VB.NET, see the.NET programming languages section.
NamexUnitLicenseSourceRemarks
vbUnitCommercialVisual Basic and COM objects
vbUnitFreeLGPLVisual Basic and COM objects
VbaUnitBSDVisual Basic for Applications
ExcelVbaUnitLGPLSimilar to VbaUnit, but specifically for testing Excel VBA
TinyUnitVisual Basic 6, VB.NET, and PHP5
SimplyVBUnitMITVB6 Unit Testing Framework modeled after the popular NUnit for.NET
VBLiteUnitBSDVisual Basic and COM objects

Visual Lisp

Xojo

XML

NamexUnitSourceRemarks
AntUnitFor testing Apache Ant tasks

XSLT

Other