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