This is a list of notable test automation frameworks commonly used for unit testing. Such frameworks are not limited to unit-level testing; they can be used for integration and system level testing.

Frameworks are grouped below. For unit testing, a framework must be the same language as the source code under test, and therefore, grouping frameworks by language is valuable. But some groupings transcend language. For example, .NET groups frameworks that work for any language supported for .NET, and HTTP groups frameworks that test an HTTP server regardless of the implementation language on the server.

Columns

The columns in the tables below are described here.

Name: Name of the framework xUnit: Whether classified as xUnit TAP: Whether can emit Test Anything Protocol (TAP) output Generators: Whether supports data generators generating test input data and running a test with the generated data Fixtures: Whether supports test local fixtures associating a test environment with a single test Group fixtures: Whether supports group fixtures associating a test environment with a group of tests

Some columns do not apply to some groupings and are therefore omitted from that groupings table.

Groups

ABAP

Name xUnit Source Remarks ABAP Unit since SAP NetWeaver 2004 TEST.easy since SAP NetWeaver 7.02 SP13

Active Server Pages (ASP)

Name xUnit Source Remarks ASPUnit

Ada

Name xUnit Source Remarks AUnit AdaTEST 95 Ahven TBrun VectorCAST/Ada RTRT

Ant

For Apache Ant tasks.

Name xUnit Source Remarks AntUnit

AppleScript

For AppleScript.

Name xUnit Source Remarks ASUnit influenced by SUnit, ASTest and Python unittest ASTest

ASCET

Name xUnit Source Remarks TPT Model based physical stimulation and implemented stimulation

Bash

Name xUnit Source Remarks shUnit2 an xUnit unit test framework for Bourne-based shell scripts bats-core Bats-Core: Bash Automated Testing System ShellSpec BDD style unit testing framework. Supports all POSIX compliant shells including Bash, Dash, Ksh and Zsh. Nestable blocks that realize local scope and easy mocking. Parallel execution. RSpec-like/TAP/JUnit XML Reporter. Code coverage integration. MIT license. bash_unit bash unit testing enterprise edition framework. GPL-3.0 License. bach Bach is a testing framework for Bash that provides the possibility to write unit tests for your Bash scripts.

BASIC

Visual Basic (VB6.0)

For unit testing frameworks for VB.NET, see .NET languages. Name xUnit License Source Remarks vbUnit Commercial Visual Basic and COM objects vbUnitFree LGPL Visual Basic and COM objects VbaUnit BSD Visual Basic for Applications ExcelVbaUnit LGPL Similar to VbaUnit, but specifically for testing Excel VBA (written as an Excel add-in) TinyUnit Visual Basic 6, VB .NET, and PHP5 SimplyVBUnit MIT VB6 Unit Testing Framework modeled after the popular NUnit for .NET VBLiteUnit BSD Visual Basic and COM objects

Xojo (REALbasic)

Name xUnit Source Remarks RBUnit XojoUnit Unit testing framework for Xojo that works with Desktop, Web and iOS project types.

Business Process Execution Language (BPEL)

Name xUnit Source Remarks BPELUnit

C

Name xUnit TAP Fixtures Group fixtures Generators Year Source License Remarks AceUnit 2007 BSD license Is JUnit 4.x style, easy, modular and flexible. It can be used in resource constrained environments, e.g., embedded software development, and PCs, workstations, servers (Windows and Unix). AcuTest MIT Simple, straightforward, fast. Single .h file. Used in the Apache Portable Runtime Library. Renamed from CUTest. API Sanity Checker (spectypes) (spectypes) 2009 LGPL Unit test generator for C/C++ libraries. Can automatically generate reasonable input data for every API function. Automated Testing Framework 2007 BSD Originally developed for the NetBSD operating system but works well in most Unix-like platforms. Ability to install tests as part of a release. BDD-for-C MIT BDD test framework with TAP output in a single header file. Cantata++ Proprietary 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. Catsrunner GPL Unit testing framework for cross-platform embedded development. CBDD 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 LGPL Specialized for Windows development—both Win32 and NT kernel mode. Compatible to WinUnit. Cgreen ISC Unit test framework including strict and loose mocks, auto-discovering of tests, suites, BDD-ish style notation, test protected against exceptions, "natural language" output, extensible reporter, learning mocks to discover actual values sent to a mock. CHEAT 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 2001 LGPL Check features a simple interface for defining unit tests, putting little in the way of the developer. Tests are run in a separate process, so Check can catch both assertion failures and code errors that cause segmentation faults or other signals. The output from unit tests can be used within source code editors and IDEs. Can output to multiple formats, like the TAP format, JUnit XML or SubUnit. Supports Linux, macOS, FreeBSD, Windows. Cmocka 2012 Apache License 2.0 CMocka is a test framework for C with support for mock objects. It's easy to use and setup. CMocka is forked from and a successor to cmockery, which was developed by Google but has been unmaintained for some time. Can output to multiple formats, like the TAP format, JUnit XML, or SubUnit. Cmockery 2008 Apache License 2.0 Google sponsored project. CppUTest 3-clause BSD 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 Criterion MIT Unit testing framework with automatic test registration. 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. CU 3-clause BSD CU is a simple unit testing framework for handling automated tests in C. CTest Apache License 2.0 Ctest is a framework with some special features: formatted output for easy parsing, easy to use. CUnit 2001 LGPL OS independent (Windows, Linux, macOS, Solaris, HP-UX, AIX and probably others) CUnit (CUnity Fork) 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 LGPLFor Win32. Minimalistic framework. Executes each test as a separate process. CUT BSD Cutter LGPL A Unit Testing Framework for C. EmbeddedUnit 2003 MIT Embedded C Embunit Proprietary Create unit tests for C/C++ and Embedded C++ FCTX BSD Fast and complete unit testing framework all in one header. Declare and write your functions in one step. No dependencies. Cross-platform. GLib Testing Part of GLib GUnit for GNOME Hammocking MIT Creates gmocks for C code . Also creates custom code. Usecase: Testing of legacy code lcut Apache License 2.0 a Lightweight C Unit Testing framework, including mock support libcester MIT A robust header only unit testing framework, for C and C++. Supports 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. LibU BSD multiplatform (Unix, Windows); explicit test case/suite dependencies; parallel and sandboxed execution; xml, txt and customizable report formatting.MimiccProprietaryFully 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 MIT Another minimalistic framework for C and Unix. Single header file.Nala MIT Powerful mocking. Clean API. NovaProva Apache License 2.0 Unit testing framework with automatic test registration. Supports mocking and stubbing. Each test is run in parallel with valgrind in its own process, so memory errors and signals can be caught. Supports Linux. Opmock GPLv3Stubbing 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 Proprietary 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. PicoTest 3-clause BSDPicoTest is a single-file unit testing framework for C programs that follows the xUnit principles. It provides a CMake module definition for easier integration with other CMake projects. RCUNIT MITRCUNIT is a small framework for testing C programs. It uses non-local jumps to emulate exceptions and handles program terminating signals (e.g. SIGILL) during test runs. RCUNIT allows creation of test fixtures, either per test or per test group. Rexo Public domain Framework for C89/C++ featuring automatic registration of tests and a polished API. RK Test Public domain A single-header unit testing library closely mimicking Google Test, featuring self registering tests. RTRT Proprietary SeaTest MIT Simple, pure C, unit testing framework Smarttester ProprietaryAutomated unit and integration testing, and code coverage Sput 2-clause BSD Simple, portable C unit testing framework, single header file STRIDE Proprietary Embedded software quality solution that includes techniques for unit, API, Behavior & Integration testing as well as interactive reporting portal TBrun Yes Proprietary Automated unit and integration testing, and code coverage