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