| Name | xUnit | TAP | Fixtures | Group fixtures | Generators |
Year | Source | License | Remarks |
| AceUnit | Yes | Yes (spectypes) | Yes | | | |
| | MIT | BDD test framework with TAP output in a single header file. |
| Cantata++ | Yes | Yes | |
| | Apache License | libcbdd is a block-based Behavior-driven development library which allows for very readable tests. Tests are written inside main functions. Works only with clang and the libblocksruntime extension. |
| cfix | Yes | | |
2012 | | BSD | Header-only unit testing framework. Multi-platform. Supports running each test in a separate process. Works without needing to "register" test cases. |
| Check | Yes | Yes | Yes | Yes | Yes | Yes | Yes | | | | |
2018 | | LGPL | Forked from CUnit in 2018 to provide ongoing development and support. OS independent (Windows, Linux, macOS, Solaris, HP-UX, AIX and probably others). Also supports output compatible with JUnit and in most cases can be a drop in replacement for CUnit. |
| CUnitWin32 | Yes | | | | |
| | LGPL | A Unit Testing Framework for C. |
| EmbeddedUnit | No | | | | |
| | Proprietary | Create unit tests for C/C++ and Embedded C++ |
| FCTX | Yes | | |
| | | Part of GLib |
| GUnit | | | | | |
| | | for GNOME |
| Hammocking | | | Yes | | Yes | No | No | | |
| | BSD | multiplatform (Unix, Windows); explicit test case/suite dependencies; parallel and sandboxed execution; xml, txt and customizable report formatting. |
| Mimicc |
|
|
|
|
|
|
|
Proprietary |
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. |
| MinUnit | | | | | |
| | MIT | extreme minimalist unit testing using 2 C macros |
| Mut | No | Yes | Yes | | Yes |
| | GPLv3 | Stubbing and mocking framework for C and C++ based on code generation from headers. 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 | Yes | Yes | Yes | No | No |
| | Public domain | Framework for C89/C++ featuring automatic registration of tests and a polished API. |
| RK Test | Yes | | |
| | MIT | Simple, pure C, unit testing framework |
| Smarttester | | | | | |
| | Proprietary | Automated unit and integration testing, and code coverage |
| Sput | | | | | |
| | 2-clause BSD |
Simple, portable C unit testing framework, single header file |
| STRIDE | Yes | Yes | Yes |
| | MIT | A Micro Unit testing framework for C/C++. At ~1k lines of code, it is simpler, lighter and much faster than heavier frameworks like Googletest and Catch2. 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, macoOS, FreeBSD, Windows. |
| TESSY | | | | | |
| | Proprietary | Automated unit and integration testing, and code coverage focused on embedded systems |
| TestApe | | | | | |
| | | Test and mocking framework. Automatic default mocks for unresolved externals |
| Test Dept. | Yes | | |
2012 | | GNU Lesser GPL | Pure C, supports test isolation in separate processes |
| Theft | | | | | Yes | | Yes |
| | Proprietary | 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. |
| Unity | Yes | | Yes | Yes | | | | |
| | | Unit-Testing Add-In for Visual Studio. Based on the cfix testing framework. |
| qc | | | | | |
See .NET languages below.
No
No |
Yes |
GNU LGPL |
Yes (spectypes) |
Yes |
Yes |
|
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 |
Yes (describe) |
No |
No |
Yes |
Rozental, Gennadiy and Enficiaud, Raffi [https://www.boost.org/doc/libs/1_68_0/libs/test/doc/html/boost_test/tests_organization/fixtures.html \"Boost Test Fixture Documentation\"].</ref>"]}'>Yes |
Rozental, Gennadiy and Enficiaud, Raffi [https://www.boost.org/doc/libs/1_68_0/libs/test/doc/html/boost_test/tests_organization/fixtures/case.html \"Boost Test Case Fixture\"].</ref><ref>Rozental, Gennadiy and Enficiaud, Raffi [https://www.boost.org/doc/libs/1_68_0/libs/test/doc/html/boost_test/tests_organization/fixtures/per_test_suite_fixture.html \"Boost Test Suite Entry/Exit Fixture\"].</ref>"]}'>Yes |
Yes |
Suites and labels |
|
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 |
No |
No |
No |
Yes |
Yes |
Yes |
No |
No |
Yes |
Boost |
Yes |
Yes |
Yes |
|
Header only, no external dependencies, auto-registration, tdd and bdd features |
| CATCH-VC6 |
|
Yes |
Yes |
Yes |
|
VC6 port of CATCH |
| cfix |
|
No |
Yes |
Yes |
Yes |
|
No |
Suites |
|
Library and MS Visual Studio add-in to create and run unit tests. Open Source. |
| CPPOCL/test |
Yes |
|
Yes |
|
|
|
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 |
Yes |
|
Suites |
|
Released under LGPL |
| cpptest-lite |
Yes |
Yes |
No |
Yes |
Yes |
Yes |
No |
Suites |
|
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 |
|
No |
No |
Suites |
|
|
| CPUnit |
|
Yes |
Yes |
Yes |
|
Released under BSD. |
| Criterion |
Yes |
No |
Yes |
Suites |
|
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 |
Yes |
Yes |
No |
File |
|
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 |
Suites within Suites |
|
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 |
|
No |
Yes |
|
|
Suites |
|
CUTE (C++ Unit Testing Easier) with Eclipse CDT integration. Single line include, without inheritance. Mock support is provided by Mockator. |
| cutee |
|
No |
No |
No |
Yes |
Yes |
Yes* |
Optional |
MIT |
Yes |
Yes |
Yes |
|
Light, feature rich C++ single header testing framework |
| Embunit |
|
Yes |
|
|
|
|
Commercial. Create unit tests for C/C++ and Embedded C++ |
| Exercisix |
No |
No |
Yes |
Executables |
|
Goal: make adding tests as fast and easy as possible. |
| FakeIt |
Yes |
No |
Yes |
No |
Yes |
Yes |
Yes |
Yes |
|
|
|
| Google Test |
Yes |
|
|
Yes |
Yes |
No |
Yes |
No |
Yes (Contexts) |
No |
Yes |
Yes |
No |
Yes |
Yes |
No |
Yes |
Yes |
No |
Yes |
Yes |
No |
Yes |
Yes |
|
|
|
|
|
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 |
Yes |
|
Yes |
Yes |
|
|
|
|
|
A C++ mock object framework providing similar syntax to mockito for Java. |
| mockpp |
|
Yes |
Yes |
Yes |
No |
Yes |
Suites |
|
Proof-of-concept |
| NullUnit |
|
Yes |
Yes |
No |
Yes (XML) |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
|
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 |
Yes |
No |
Yes |
Yes |
No |
No |
No |
No |
Yes |
Yes |
No |
No |
Yes |
Yes |
No |
Yes |
|
|
| STRIDE |
Proprietary |
Yes |
Yes |
Yes |
|
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 |
Yes |
Yes |
Yes |
Yes |
Yes |
No |
Auto-detect |
Yes |
Yes |
Yes |
Yes |
|
Optional |
Yes |
Yes |
Depends |
Boost |
|
|
|
|
No |
No |
Yes |
Templates |
|
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 |
|
|
Commercial. Isolation/Mocking Framework for C/C++ |
| Unit++ |
|
|
|
|
|
|
|
|
|
|
|
|
| unit.hpp |
|
No |
Yes |
No |
No |
Yes |
Suites |
|
UnitTest++ is free software. Simplicity, portability, speed, and small footprint are all important aspects of UnitTest++. |
| upp11 |
|
No |
Yes |
Yes |
|
Free software. Minimal (single small header), auto test registrations, parametrized tests, etc. C++11 only. |
| UquoniTest |
Proprietary |
Yes |
Yes |
Yes |
|
Commercial. Adds features like easy creation of (reusable) test directories, Rich Booleans in assertions, and more. |
| μt |
Yes |
No |
Yes |
Yes |
Yes |
Yes |
Yes |
No |
No |
|
|
Unit-Testing Add-In for Visual Studio. Based on the cfix testing framework. |
| WinUnit |
|
|
|
|
|
|
|
|
|
|
|
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 |
|
Yes |
| Suites and Attributes"]}'>Yes,
Suites and Attributes
|
Supports running tests concurrently. Macros are used for test setup only, not for test assertions. |
| tinytest |
Yes |
|
|
|
Standalone, no dependencies, header-only. |
| sTest |
Yes |
No | | Enable isolated unit testing of individual paragraphs in COBOL programs, in a standalone environment with no connection to a z/OS system. Distributed under GNU General Public License. |
| ECBLUnit | No | | Commercial tool (rather than a framework) to edit and perform component tests on the IBM mainframe platform |
| Topaz for Total Test | Yes | | Commercial framework for testing Micro Focus COBOL programs on the Windows/Unix platforms |
| CC Analyzer |
No |
|
Commercial Code Coverage Analysis tool. Supports IBM mainframe, Windows, Unix platforms |