From Wikipedia, the free encyclopedia
This page is a list of tables of code-driven unit testing frameworks for various programming languages. Some of these are based on xUnit, but not all of them are.
[edit] Columns
- Name: This column contains the name of the framework and will usually link to it.
- xUnit: This column indicates whether a framework should be considered of xUnit type.
- TAP: This column indicates whether a framework can emit TAP output for TAP-compliant testing harnesses.
- Generators: Indicates whether a framework supports data generators. Data generators generate input data for a test and the test is run for each input data that the generator produces.
- Fixtures: Indicates whether a framework supports test-local fixtures. Test-local fixtures ensure a specified environment for a single test.
- Group fixtures: Indicates whether a framework supports group fixtures. Group fixtures ensure a specified environment for a whole group of Tests
- Other columns: These columns indicate whether a specific language / tool feature is available / used by a framework.
- Remarks: Any remarks.
[edit] Languages
Name |
xUnit |
Remarks |
FlexUnit |
|
|
Reflex Unit |
|
Metadata-driven unit testing framework for Flex 2 and 3 |
FUnit |
Yes |
Metadata-driven unit testing for Flex |
AS2Unit |
|
|
Astre |
|
Unit testing library for ActionScript 3. |
ASTUce |
Yes |
Unit testing for ActionScript 3 (also JS, AS1, AS2), that can also run on the command-line with a cross-platform executable (support OS X / Linux / Windows) |
AsUnit |
|
Flash Players 6, 7, 8 and 9 |
As2lib Unit Test |
|
|
dpUInt |
|
Unit and Integration testing framework for Flex 2 and 3 |
Fluint |
|
Unit and Integration testing framework for Flex 2 and 3 |
mojotest |
Yes |
Unit testing for ActionScript 3, Flash Player 10 |
Name |
xUnit |
Remarks |
ASUnit |
Yes |
Testing framework for AppleScript, influenced by SUnit, ASTest and Python unittest |
ASTest |
Yes |
A testing framework for AppleScript |
Name |
xUnit |
Remarks |
Autounit (GNU) |
|
In beta/under construction |
C++test |
Yes |
|
Catrunner |
|
nice unit testing framework for cross-platform embedded development |
cfix |
Yes |
For Win32. Aims at minimizing development effort. Separates test code (compiled/linked into a DLL) from test runner (provided by cfix). Supports NT kernel mode as well. |
Cgreen |
|
includes mocks |
Check |
Yes |
|
Cmockery |
Yes |
Google sponsored project. |
CUnit |
Yes |
|
CUnitWin32 |
Yes |
For Win32. Minimalistic framework. Executes each test as a separate process. |
CUT |
No |
|
CuTest |
Yes |
Simple, straighforward, fast. Single .c file. Used in the Apache Portable Runtime Library. |
Cutter |
Yes |
A Unit Testing Framework for C. |
EmbeddedUnit |
|
Embedded C |
GLib Testing |
Yes |
Part of GLib |
GUnit |
|
for GNOME |
MinUnit |
|
extreme minimalist unit testing using 2 C macros |
RCUNIT |
Yes |
robust C unit |
RTRT |
|
|
TBrun |
|
|
Tessy |
|
cross-platform testing capabilities |
TestApe |
|
Dynamic stub generation during instrumentation |
Test Dept. |
Yes |
Can modify calls from software under test; e.g. test error conditions by stubbing malloc and letting it return null. Well documented |
Unity |
Yes |
Lightweight & includes features for embedded development. Can work with Mocks and Exceptions via CMock and CException. |
VectorCAST/C |
|
Automated unit and integration testing, and code coverage |
See .NET Programming languages below.
Name |
xUnit |
Fixtures |
Group fixtures |
Generators |
Mocks |
Exceptions |
Macros |
Templates |
Grouping |
Remarks |
Aeryn |
No |
Yes |
Yes |
No |
No |
Yes |
Yes |
Yes |
Yes |
|
Boost Test Library |
No |
Yes |
No |
Yes |
No |
Yes |
User decision |
Yes |
Suites |
Part of Boost |
C++test |
Yes |
Yes |
Yes |
Yes |
No |
Yes |
Yes |
Yes |
Yes |
Commercial. |
Cantata++ |
No |
No |
No |
|
No |
Yes |
Yes |
Yes |
|
Commercial. Provides ability to modify calls from software under test; e.g. test error conditions by forcing malloc to return null. |
cfix |
Yes |
Yes |
No |
No |
No |
Yes |
Yes |
No |
|
For Win32. Aims at minimizing development effort. Separates test code (compiled/linked into a DLL) from test runner (provided by cfix). |
CppUnit |
Yes |
Yes |
Yes |
No |
No |
Yes |
Yes |
No |
Suites |
http://cppunit.sourceforge.net/cgi-bin/main.cgi |
CppUTest |
Yes |
Yes |
Yes |
No |
No |
No |
Yes |
No |
Suites |
|
CppUnitLite |
Yes |
|
|
No |
No |
No |
Yes |
No |
Suites |
|
CUTE |
Yes |
Yes |
No |
No |
No |
Yes |
|
|
Suites |
CUTE (C++ Unit Testing Easier) with Eclipse CDT integration. Single line include, without inheritance. |
cutee |
No |
No |
No |
Yes |
|
|
|
|
|
|
CxxTest |
Yes |
Yes |
Yes |
No |
Yes* |
Optional |
Yes |
No |
Suites |
Uses a simple C++ parser and code generator (requiring Perl or Python) for test registration. * Has a framework for generating mocks of global functions, but not for generating mocks of objects. |
Fructose |
No |
Yes |
No |
No |
No |
Yes |
Yes |
Yes |
No |
A simple unit test framework. See also Accu |
Google C++ Mocking Framework |
|
|
|
|
Yes |
No |
Yes |
Yes |
|
|
Google C++ Testing Framework |
Yes |
Yes |
|
|
|
No |
Yes |
Yes |
|
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 |
No |
Yes |
Yes |
No |
No |
Yes |
Yes |
No |
Suites |
Open source. Can test servers, libraries, and applications, and also test embedded software. |
NanoCppUnit |
No |
Yes |
Yes |
No |
No |
No |
Yes |
Yes |
Suites |
Proof-of-concept |
OAKUT |
No |
No |
Yes |
Yes (XML) |
No |
Yes |
Yes |
Yes |
XML |
Uses shared libraries / DLLs |
QuickTest |
No |
No |
No |
No |
No |
Yes |
Yes |
Yes |
No |
|
QUnit |
No |
No |
No |
No |
No |
No |
No |
No |
No |
50 lines of code only |
ShortCUT |
No |
|
|
|
|
|
|
|
Yes |
|
SymbianOSunit |
|
|
|
|
|
|
|
|
|
Based on CxxUnit |
TBrun |
|
|
|
|
|
|
|
|
|
Commercial |
Test soon |
No |
Yes |
Yes |
Yes |
No |
Auto-detect |
Yes |
Yes |
Macro (namespaces) |
Complex macro logic (deliberately) |
Testwell CTA++ |
Yes |
No |
No |
Yes |
No |
Yes |
Yes |
Yes |
|
|
TUT |
No |
No |
Yes |
No |
No |
Yes |
Yes |
Yes |
Templates |
Templates for registration |
Unit++ |
|
|
|
|
|
|
|
|
|
|
UnitTest |
Yes |
Yes |
No |
No |
No |
Yes |
Yes |
No |
No |
Windows C++ UnitTest Framework |
UnitTest++ |
No |
Yes |
No |
No |
No |
Yes |
Yes |
Yes |
Suites |
Release notes |
VectorCAST/C++ |
|
|
|
|
|
|
|
|
|
|
xTests |
|
|
|
|
|
Yes |
Yes |
|
|
Depends on STLSoft C++ Libraries |
Yaktest |
|
|
|
|
|
|
|
|
|
|
Name |
xUnit |
Fixtures |
Group fixtures |
Generators |
Mocks |
Exceptions |
Macros |
Templates |
Grouping |
Remarks |
Name |
xUnit |
Fixtures |
Group Fixtures |
Generators |
Remarks |
EUnit |
Yes |
Yes |
Yes |
Yes |
Included in Erlang release R12B5 and later |
Name |
xUnit |
Remarks |
GXUnit |
Yes |
It's a framework (prototype) to perform unit testing for Genexus. You can find the source here |
Name |
xUnit |
Remarks |
HtmlUnit |
|
Java headless browser emulator |
HttpUnit |
|
testing framework for web applications, typically used in combination with JUnit |
IEUnit |
|
testing framework for web applications, based on IE browser and Javascript |
Canoo WebTest |
|
|
Selenium |
|
Testing framework that runs in IE and Firefox to test webpages. |
Name |
xUnit |
Remarks |
LabVIEW Unit Test Framework |
No |
Generate test harnesses for VIs in LabVIEW automatically. |
VI Tester |
Yes |
native LabVIEW object-oriented implementation of xUnit framework. Unit tests are written as VIs in LabVIEW. |
Name |
xUnit |
Remarks |
mlUnit |
Yes |
|
Phelan's MUnit |
|
The code is not available for download and an additional license restriction appears to violate the GPL, under which the code is purportedly licensed. |
Lombardi's MUnit |
|
Similar to xUnit |
MTest |
Yes |
MATLAB r2008a and later (uses OOP features introduced in this release). |
[edit] .NET programming languages
Name |
xUnit |
Remarks |
csUnit |
Yes |
includes GUI, command line, VS2005 plug-in; supports C#, VB.NET, Managed C++, J#, other .NET languages; integrated with ReSharper |
NUnit |
Yes |
includes GUI, command line, integrates into VisualStudio with ReSharper |
MSTest |
Yes |
Included with Visual Studio 2005 Team Edition and all 2008 editions, integrated with Visual Studio IDE, includes command line interface, very similar to NUnit, but less mature |
MbUnit |
Yes |
Extensible, model-based nUnit compatible framework. |
TestDriven.NET |
|
|
.TEST |
Yes |
|
QuickUnit.net |
No |
Implement unit tests without coding. Minimalist approach to test driven development. |
xUnit.net |
Yes |
|
Specter |
Yes |
Behavior Driven Development with an easy and readable syntax for writing specifications. Includes command line, optional integration with NUnit |
DbUnit.NET |
|
|
NDbUnit |
|
|
OCZanebug |
|
|
NUnitAsp |
|
Based on NUnit |
NMate |
|
NUnit Integration and Code Generation Addin for Microsoft Visual Studio |
Roaster |
Yes |
NUnit based framework and tools for the .NET Compact Framework |
Pex |
Yes |
Microsoft Research project providing White box testing for .NET, using the Z3 constraint solver to generate unit test input (rather than Fuzzing). |
Name |
xUnit |
Remarks |
FPCUnit |
Yes |
This is a port to Free Pascal of the JUnit core framework. |
Name |
xUnit |
Remarks |
PRUnit |
Yes |
xUnit style testing adapted to PRPC |
Name |
xUnit |
TAP |
Remarks |
TAP |
N/A |
Yes |
the Test Anything Protocol used by most Perl tests |
Test::Harness |
N/A |
Yes |
the standard Perl test runner and TAP parser |
Test::More |
No |
Yes |
The baseline testing module, included with all modern Perl installations |
Test::Class |
Yes |
Yes |
xUnit style testing adapted to Perl |
Test::Builder |
N/A |
Yes |
a module for making more testing modules. These modules can be combined in a single test program |
Test::Unit (a.k.a. PerlUnit) |
Yes |
No |
a fairly straight port of JUnit to Perl |
Test-DBUnit |
N/A |
Yes |
The database testing modules for both clear box and black box testing |
Test::Unit::Lite |
Yes |
Yes (via Test::Unit::HarnessUnit) |
Test::Unit replacement without external dependencies and with some bugs fixed |
Name |
xUnit |
TAP |
Remarks |
PGtools |
|
|
Schema loading and testing tools for PostgreSQL. |
pgTAP |
No |
Yes |
Write tests in pgsql |
PGUnit |
Yes |
No |
xUnit-style framework for stored procedures |
Name |
xUnit |
Generators |
Fixtures |
Group Fixtures |
Remarks |
PyUnit |
Yes |
Yes |
Yes |
No |
it's part of Python's standard library |
XPyUnit |
|
|
|
|
adding XML report generation to PyUnit |
TestOOB |
|
|
|
|
an extended test framework for PyUnit |
Doctest |
|
|
|
|
easy, Pythonic, and part of Python's standard library |
Nose |
Yes |
|
Yes |
|
a discovery-based unittest extension |
py.test |
Yes |
Yes |
Yes |
Yes |
distributed testing tool |
Trial |
Yes |
Yes |
Yes |
No |
PyUnit extensions for asynchronous and event-driven code |
Name |
xUnit |
Remarks |
FUTS |
Yes |
the Framework for Unit Testing SAS |
Name |
xUnit |
Remarks |
SUnit |
Yes |
It's actually the original source of the xUnit design |
Name |
xUnit |
Remarks |
TUnit |
Yes |
Embedded multi-platform wireless testing and characterization |
For unit testing frameworks for VB.NET, see the .NET programming languages section.
Name |
xUnit |
Remarks |
vbUnit |
|
Visual Basic and COM objects |
VbaUnit |
|
Visual Basic for Applications |
ExcelVbaUnit |
|
Similar to VbaUnit, but specifically for testing Excel VBA (written as an Excel add-in) |
TinyUnit |
|
Visual Basic 6, VB .NET, and PHP5 |
SimplyVBUnit |
Yes |
VB6 Unit Testing Framework modeled after the popular NUnit for .NET |
Name |
xUnit |
Remarks |
XUnit |
|
for testing
- native XML programs,
- individual XSLT templates,
- and Java programs that deal with XML data
|
WUnit |
|
for testing Web applications
- tests are written in XML/XPath (XUnit),
- AJAX applications are supported,
- can also test server-side functionalities if they are made with Java servlets (for example, it is possible to store authoritatively an object in the user session server-side without sending an HTTP request and then get with HTTP the page that renders it)
|
Name |
xUnit |
Remarks |
juxy |
|
a library for unit testing XSLT stylesheets from Java |
UTF-X |
|
unit testing framework for XSLT that strongly supports the test-first-design principle with test rendition and test validation features |
XSLTunit |
|
proof of concept unit testing framework for XSLT |
[edit] See also
Unit testing in general:
Extreme programming approach to unit testing:
[edit] External links