| Name
|
License
|
xUnit
|
Fixtures
|
Group fixtures
|
Generators
|
Mocks
|
Exceptions
|
Macros
|
Templates
|
Grouping
|
Source
|
Remarks
|
| Aeryn
|
|
No
|
Yes
|
Yes
|
No
|
No
|
Yes
|
Yes
|
Yes
|
Yes
|
[96]
|
|
| API Sanity Checker
|
GNU LGPL
|
Yes
|
Yes (spectypes)
|
Yes (spectypes)
|
Yes
|
|
|
|
|
|
[32]
|
Unit test generator for C/C++ libraries. Can automatically generate reasonable input data for every API function. LGPL.
|
| ATF
|
BSD
|
|
|
|
|
|
Yes
|
Yes
|
Yes
|
Yes
|
[34]
|
Originally developed for the NetBSD operating system but works well in most Unix-like platforms. Ability to install tests as part of a release.
|
| Bandit
|
MIT
|
No (describe/it)
|
Yes (describe)
|
Yes (Nested describe)
|
No
|
No
|
Yes
|
Yes
|
No
|
Yes (Nested describe)
|
[97]
|
Header only. Automatic test registration. Specifically developed for C++11
|
| Boost Test Library
|
Boost
|
Yes[98]
|
Yes[99]
|
Yes[100][101]
|
Yes
|
With additional library "Turtle"[102]
|
Yes
|
User decision
|
Yes
|
Suites and labels
|
[103]
|
Part of Boost. Powerful dataset concept for generating test cases. Different levels of fixtures (global, once per test suite, once per each test case in a suite). Powerful floating point comparison.
|
| BugEye
|
Boost
|
No
|
No
|
No
|
No
|
No
|
Yes
|
No
|
No
|
Yes
|
[104]
|
Header-only. TAP output.
|
| QA Systems Cantata
|
Proprietary
|
No
|
Yes
|
Yes
|
Yes
|
Yes
|
Yes
|
Yes
|
Yes
|
Yes
|
[36]
|
Commercial. 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.
|
| Casmine
|
GPL 2.0
|
No
|
Yes
|
Yes
|
No
|
No
|
Yes
|
Yes
|
Yes
|
Yes
|
[105]
|
C++17, modeled after the Jasmine testing framework, type-safe tests, auto-registration, BDD features, focused/disabled/pending tests, flexible configuration (JSON), colored console reporter, extendable, Windows/Linux/macOS
|
| Catch or Catch2
|
Boost
|
No
|
Yes
|
Yes
|
Yes
|
No
|
Yes
|
Yes
|
Yes
|
Yes
|
[106]
|
Header only, no external dependencies, auto-registration, tdd and bdd features
|
| CATCH-VC6
|
|
No
|
Yes
|
Yes
|
Yes
|
No
|
Yes
|
Yes
|
Yes
|
Yes
|
[107]
|
VC6 port of CATCH
|
| cfix
|
|
Yes
|
Yes
|
No
|
No
|
No
|
Yes
|
Yes
|
No
|
|
[39]
|
Specialized for Windows development—both Win32 and NT kernel mode. Compatible to WinUnit.
|
| Cput
|
|
Yes
|
Yes
|
Yes
|
Yes
|
|
Yes
|
Yes
|
No
|
Suites
|
[108]
|
Library and MS Visual Studio add-in to create and run unit tests. Open Source.
|
| CPPOCL/test
|
Apache 2
|
No
|
Yes
|
|
No
|
|
Yes
|
Yes
|
|
|
[109]
|
Released Under Apache 2.0, compliant with C++ 98 and C++ 11. Works for Linux, Windows 32/64 bit using gcc, Cygwin, VS2005, 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.
|
| CppTest
|
GNU LGPL
|
|
Yes
|
|
|
|
|
Yes
|
|
Suites
|
[110]
|
Released under LGPL
|
| cpptest-lite
|
MIT
|
|
Yes
|
|
|
|
Yes
|
Yes
|
|
Suites
|
[111]
|
Released under MIT. Developed for C++11.
|
| CppUnit
|
GNU LGPL
|
Yes
|
Yes
|
Yes
|
No
|
No
|
Yes
|
Yes
|
No
|
Suites
|
[112][113]
|
Released under LGPL
|
| Name
|
License
|
xUnit
|
Fixtures
|
Group fixtures
|
Generators
|
Mocks
|
Exceptions
|
Macros
|
Templates
|
Grouping
|
Source
|
Remarks
|
| CppUTest
|
|
Yes
|
Yes
|
Yes
|
No
|
Yes
|
No
|
Yes
|
No
|
Suites
|
[48]
|
Limited 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
|
| CppUnitLite
|
|
Yes
|
|
|
No
|
No
|
No
|
Yes
|
No
|
Suites
|
[114]
|
|
| CPUnit
|
|
Yes
|
Yes
|
Yes
|
No
|
No
|
Yes
|
Yes
|
Yes
|
Yes
|
[115]
|
Released under BSD.
|
| Criterion
|
MIT
|
Yes
|
Yes
|
Yes
|
Yes
|
No
|
Yes
|
Yes
|
Yes
|
Suites
|
[116]
|
Unit 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. Supports Linux, macOS, FreeBSD, Windows.
|
| libcester
|
MIT
|
Yes
|
Yes
|
Yes
|
Yes
|
Yes
|
Yes
|
Yes
|
No
|
File
|
[64]
|
A robust header only unit testing framework for C and C++ programming language. Support function mocking, memory leak detection, crash report. Works on various platforms including embedded systems and compatible with various compilers. Outputs to multiple format like TAP, JunitXML, TAPV13 or plain text.
|
| crpcut
|
|
No
|
Yes
|
|
No
|
No
|
|
Yes
|
Yes
|
Suites within Suites
|
[117]
|
BSD 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.
|
| CUTE
|
|
Yes
|
Yes
|
No
|
No
|
Yes
|
Yes
|
|
|
Suites
|
[118]
|
CUTE (C++ Unit Testing Easier) with Eclipse CDT integration. Single line include, without inheritance. Mock support is provided by Mockator.
|
| cutee
|
|
No
|
No
|
No
|
No
|
|
|
|
|
|
[119]
|
|
| CuteX
|
|
No
|
No
|
No
|
No
|
No
|
Yes
|
No
|
Yes
|
Yes (by wildcard)
|
[120]
|
Native C++ unit test framework using template recursive, no "weird" fixture. Assertion template only, zero learning time. Header only, no external library.
|
| CxxTest
|
|
Yes
|
Yes
|
Yes
|
No
|
Yes*
|
Optional
|
Yes
|
No
|
Suites
|
[121]
|
Uses a C++ parser and code generator (requiring Python) for test registration. * Has framework to generate mocks of global functions, but not of objects.
|
| doctest
|
MIT[122]
|
No
|
Yes
|
Yes
|
No
|
No
|
Yes
|
Yes
|
Yes
|
Yes
|
[123]
|
Light, feature rich C++ single header testing framework
|
| Embunit
|
|
No
|
|
|
|
No
|
Yes
|
|
|
|
[58]
|
Commercial. Create unit tests for C/C++ and Embedded C++
|
| Exercisix
|
BSD
|
No
|
No
|
No
|
No
|
No
|
Yes
|
Yes
|
Yes
|
Executables
|
[124]
|
Goal: make adding tests as fast and easy as possible.
|
| FakeIt
|
MIT
|
|
|
|
|
Yes
|
|
|
|
|
[125]
|
Use the latest C++11 features to create an expressive, yet very simple, API.
|
| FCTX
|
|
Yes
|
Yes
|
Yes
|
No
|
No
|
No
|
Yes
|
No
|
Yes
|
[126]
|
Fast and complete unit testing framework all in one header. Declare and write your functions in one step. No dependencies. Cross platform.
|
| Fructose
|
|
No
|
Yes
|
No
|
Yes
|
No
|
Yes
|
Yes
|
Yes
|
No
|
[127]
|
A simple unit test framework.
|
| Name
|
License
|
xUnit
|
Fixtures
|
Group fixtures
|
Generators
|
Mocks
|
Exceptions
|
Macros
|
Templates
|
Grouping
|
Source
|
Remarks
|
| Google C++ Mocking Framework
|
|
|
|
|
|
Yes
|
No
|
Yes
|
Yes
|
|
[128]
|
|
| Google Test
|
BSD
|
Yes
|
Yes
|
|
|
Yes
|
Yes
|
Yes
|
Yes
|
|
[129]
|
Supports 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.
|
| Hestia
|
MIT
|
Yes
|
Yes
|
Yes
|
No
|
No
|
Yes
|
Yes
|
Yes
|
Suites
|
[130]
|
Open 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
|
|
|
|
|
|
Yes
|
No
|
Yes
|
Yes
|
|
[131]
|
|
| Igloo
|
|
|
Yes (Contexts)
|
No
|
No
|
No
|
Yes
|
Yes
|
Yes
|
Yes (nested contexts)
|
[132]
|
BDD style unit testing in C++
|
| lest
|
|
No
|
Yes
|
No
|
No
|
No
|
Yes
|
Yes
|
Yes
|
No
|
[133]
|
Tiny header-only C++11 test framework
|
| liblittletest
|
|
Yes
|
Yes
|
Yes
|
No
|
No
|
Yes
|
Yes
|
Yes
|
Yes
|
[134]
|
Portable, one file header-only C++ library for unit testing. Supports a rich set of assertions, automatic test discovering, various options for running the tests.
|
| libunittest
|
|
Yes
|
Yes
|
Yes
|
No
|
No
|
Yes
|
Yes
|
Yes
|
Yes
|
[135]
|
Portable C++ library for unit testing, uses C++11.
|
| mettle
|
BSD
|
|
|
|
|
|
|
|
|
|
[136]
|
| Microsoft Unit Testing Framework for C++
|
Proprietary
|
Yes
|
Yes
|
Yes
|
No
|
No
|
Yes
|
Yes
|
Yes
|
Yes
|
[137]
|
Commercial. Integrated into Microsoft Visual Studio 2012 IDE and later versions.
|
| Mimicc
|
Proprietary
|
|
|
|
|
Yes
|
|
|
|
|
[66]
|
Fully automated mock generation for C and C++. Based on clang, provides the ability to compile header files straight into linkable mock object files and control them with an accompanying API.
|
| Mockator
|
|
|
|
|
|
Yes
|
No
|
Yes
|
Yes
|
|
[138]
|
Header-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++/mockcpp
|
|
Yes
|
Yes
|
|
No
|
Yes
|
Yes
|
Yes
|
Yes
|
Suites
|
[139]
|
Simple testing framework for C++ (requires cmake)
|
| mockitopp
|
|
|
|
|
|
Yes
|
|
|
|
|
[140]
|
A C++ mock object framework providing similar syntax to mockito for Java.
|
| mockpp
|
|
Yes
|
Yes
|
|
Yes
|
Yes
|
Yes
|
Yes
|
Yes
|
Suites
|
[141]
|
A C++ mocking framework hosted by Google
|
| Name
|
License
|
xUnit
|
Fixtures
|
Group fixtures
|
Generators
|
Mocks
|
Exceptions
|
Macros
|
Templates
|
Grouping
|
Source
|
Remarks
|
| NanoCppUnit
|
|
No
|
Yes
|
Yes
|
No
|
No
|
No
|
Yes
|
Yes
|
Suites
|
[142]
|
Proof-of-concept
|
| NullUnit
|
|
Yes
|
Yes
|
Yes
|
No
|
No
|
Yes
|
Yes
|
Yes
|
Suites
|
[143]
|
Low 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
|
|
No
|
No
|
Yes
|
Yes (XML)
|
No
|
Yes
|
Yes
|
Yes
|
XML
|
[144]
|
Uses shared libraries / DLLs
|
| Opmock
|
GNU GPL
|
Yes
|
Yes
|
Yes
|
Yes
|
Yes
|
No
|
Yes
|
No
|
Yes
|
[71]
|
Stubbing 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++test
|
Proprietary
|
Yes
|
Yes
|
Yes
|
Yes
|
Yes with proper configuration
|
Yes
|
Yes
|
Yes
|
Yes
|
[72]
|
Commercial. 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.
|
| snitch
|
Boost
|
No
|
Yes
|
Yes
|
No
|
No
|
Yes
|
Yes
|
Yes
|
Yes
|
[145]
|
Lightweight C++20 testing framework without heap allocations
|
| QtTest
|
GNU LGPL
|
Yes
|
Yes
|
No
|
No
|
No
|
Yes[146]
|
No
|
No
|
|
[147]
|
Built on the ultra cross platform Qt Library. Allows testing on Windows, macOS, Linux, BSD, Symbian, and any other platform Qt can build on.
|
| QuickCheck++
|
|
|
|
|
|
|
|
|
|
|
[148]
|
Framework for automatically generating tests. Inspired by QuickCheck
|
| QuickTest
|
|
No
|
No
|
No
|
No
|
No
|
Yes
|
Yes
|
Yes
|
No
|
[149]
|
|
| Rexo
|
Public domain
|
Yes
|
Yes
|
Yes
|
No
|
No
|
No
|
Yes
|
No
|
Yes
|
[75]
|
Framework for C89/C++ featuring automatic registration of tests and a polished API.
|
| SafetyNet
|
|
Yes
|
Yes
|
No
|
Yes
|
Yes
|
Yes
|
Yes
|
No
|
No
|
[150]
|
Lightweight 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
|
|
No
|
|
|
|
|
|
|
|
Yes
|
[151]
|
|
| STRIDE
|
Proprietary
|
Yes
|
Yes
|
Yes
|
No
|
Yes
|
Yes
|
Yes
|
Yes
|
Yes
|
[152]
|
Commercial. Embedded software quality solution that includes techniques for unit, API, Behavior & Integration testing as well as interactive reporting portal
|
| Name
|
License
|
xUnit
|
Fixtures
|
Group fixtures
|
Generators
|
Mocks
|
Exceptions
|
Macros
|
Templates
|
Grouping
|
Source
|
Remarks
|
| Symbian OS Unit
|
|
Yes
|
|
|
|
|
|
|
|
|
[153]
|
Based on CxxTest
|
| TBrun
|
Proprietary
|
|
|
|
|
|
|
|
|
|
[154]
|
Commercial.
Generators available across another component named TBExtreme
|
| Tau
|
MIT
|
Yes
|
Yes
|
|
|
No
|
Yes
|
Yes
|
Yes
|
|
[155]
|
A Micro Unit testing framework for C/C++ (~1k lines of code). Includes a rich set of assertion macros, supports automatic test registration and can output to multiple formats, like the TAP format or JUnit XML. Supports Linux, macOS, FreeBSD, Windows.
|
| TESSY
|
Proprietary
|
|
|
|
|
|
|
|
|
|
[83]
|
Commercial.
|
| TDOG
|
|
Yes
|
Yes
|
Yes
|
Yes
|
No
|
Yes
|
Yes
|
Yes
|
Macro (namespaces)
|
[156]
|
TDOG is a lightweight, portable and open source C++ xUnit Testing Framework.
|
| Test soon
|
|
No
|
Yes
|
Yes
|
Yes
|
No
|
Auto-detect
|
Yes
|
Yes
|
Macro (namespaces)
|
[157]
|
Complex macro logic (deliberately)
|
| Testwell CTA++
|
Proprietary
|
Yes
|
No
|
No
|
Yes
|
No
|
Yes
|
Yes
|
Yes
|
|
[158]
|
Commercial.
|
| tpunit++
|
|
Yes
|
Yes
|
|
No
|
No
|
Optional
|
Yes
|
Yes
|
|
[159]
|
A simple, portable C++ xUnit library contained in a single header.
|
| TPT
|
Proprietary
|
Yes
|
Yes
|
Yes
|
Yes
|
No
|
No
|
Depends
|
Depends
|
Yes
|
[160]
|
Time Partition Testing: Automated model based unit and integration testing for embedded systems. For C code under test, TPT supports automatic test frame generation including automatic interface analysis as well as automatic test execution, evaluation and logging.
|
| Trompeloeil
|
Boost
|
|
|
|
|
Yes
|
|
|
|
|
[161]
|
Simple, yet powerful, single header framework for mocking. Requires C++14.
|
| TUT
|
|
No
|
No
|
Yes
|
No
|
No
|
Yes
|
Yes
|
Yes
|
Templates
|
[162]
|
Based on templates. Automatic test registration/discovery, customizable reports generation process, various tests run options. Easy adaptable to work on Windows CE.
|
| Typemock Isolator++
|
|
Yes
|
Yes
|
|
|
Yes
|
Yes
|
Yes
|
Yes
|
|
[163]
|
Commercial. Isolation/Mocking Framework for C/C++
|
| Unit++
|
|
|
|
|
|
|
|
|
|
|
[164]
|
|
| unit.hpp
|
|
No
|
Yes
|
No
|
Yes
|
No
|
Yes
|
Yes
|
No
|
|
[165]
|
Extremely lightweight single header (<500loc) 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 (Similar to Catch).
|
| UnitTest++
|
|
No
|
Yes
|
Yes
|
|
No
|
Yes
|
Yes
|
Yes
|
Suites
|
[166]
|
UnitTest++ is free software. Simplicity, portability, speed, and small footprint are all important aspects of UnitTest++.
|
| upp11
|
|
Yes
|
Yes
|
No
|
No
|
No
|
Yes
|
Yes
|
Yes
|
Yes
|
[167]
|
Free software. Minimal (single small header), auto test registrations, parametrized tests, etc. C++11 only.
|
| UquoniTest
|
Proprietary
|
Yes
|
Yes
|
Yes
|
No
|
Yes
|
Yes
|
Yes
|
Yes
|
Yes
|
[168]
|
Commercial. Adds features like easy creation of (reusable) test directories, Rich Booleans in assertions, and more.
|
| μt
|
Boost
|
No
|
Yes
|
Yes
|
No
|
No
|
Yes
|
No
|
Yes
|
Yes
|
[169]
|
C++20 single header/single module, macro-free μ(micro)/Unit Testing Framework with no dependencies.
|
| VectorCAST/C++
|
Proprietary
|
No
|
Yes
|
Yes
|
Yes
|
Yes
|
Yes
|
Yes
|
Yes
|
Yes
|
[92]
|
Commercial. Automated unit and integration testing, and code coverage.
|
| Visual Assert
|
|
Yes
|
Yes
|
No
|
No
|
No
|
Yes
|
Yes
|
No
|
|
[93]
|
Unit-Testing Add-In for Visual Studio. Based on the cfix testing framework.
|
| WinUnit
|
|
|
|
|
|
|
|
|
|
|
[170]
|
Focused more toward C/C++ than .NET developers
|
| Name
|
License
|
xUnit
|
Fixtures
|
Group fixtures
|
Generators
|
Mocks
|
Exceptions
|
Macros
|
Templates
|
Grouping
|
Source
|
Remarks
|
| xTests
|
|
|
|
|
|
|
Yes
|
Yes
|
|
|
[95]
|
Depends on STLSoft C & C++ Libraries
|
| xUnit++
|
|
Yes
|
Yes
|
Yes
|
Yes
|
|
Yes
|
Yes, Test setup only
|
Yes
|
Yes, Suites and Attributes
|
[171]
|
Supports running tests concurrently. Macros are used for test setup only, not for test assertions.
|
| tinytest
|
Apache 2
|
Yes
|
|
|
|
|
|
Yes
|
|
|
[89]
|
Standalone, no dependencies, header-only.
|
| sTest
|
MIT
|
|
|
|
|
|
Yes
|
Yes
|
Yes
|
Yes
|
[172]
|
Lightweight (one header file, uses standard library). Simple to use and write tests quickly (no need to: build special constructions, create objects, use scope, catch or throw exceptions). Counting, grouping and merging tests. Easy to modify output (separated logic from printing logs). Needs C++11.
|
| Name
|
License
|
xUnit
|
Fixtures
|
Group fixtures
|
Generators
|
Mocks
|
Exceptions
|
Macros
|
Templates
|
Grouping
|
Source
|
Remarks
|