From Wikipedia, the free encyclopedia
This page is a list of tables of code-driven unit testing frameworks for various programming languages . Some but not all of these are based on xUnit .
Columns (Classification)
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.
Languages
Name
xUnit
Homepage
Remarks
FlexUnit
[2]
FlexUnit 4
Yes
[3]
Metadata-driven unit testing for Flex 2,3 and 4 and ActionScript 3 projects
Reflex Unit
[4]
Metadata-driven unit testing framework for Flex 2 and 3
FUnit
Yes
[5]
Metadata-driven unit testing for Flex
Astre
[6]
Unit testing library for ActionScript 3.
ASTUce
Yes
[7]
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
[8]
Flash Players 6, 7, 8, 9 and 10
dpUInt
[9]
Unit and Integration testing framework for Flex 2 and 3
Fluint
[10]
Unit and Integration testing framework for Flex 2 and 3
mojotest
Yes
[11]
(under developement) Unit testing for ActionScript 3, Flash Player 10
Name
xUnit
Homepage
Remarks
ASUnit
Yes
[16]
Testing framework for AppleScript, influenced by SUnit, ASTest and Python unittest
ASTest
Yes
[17]
A testing framework for AppleScript
Name
xUnit
Fixtures
Group fixtures
Generators
Homepage
Remarks
API Sanity Autotest
Yes
Yes (specialized data types)
Yes (specialized data types)
Yes
[20]
Unit test generator for shared C/C++ libraries API in Unix-like operating systems. Open Source.
Automated Testing Framework
[21]
BSD Licensed. Originally developed for the NetBSD operating system but works well in most Unix-like platforms. Ability to install tests as part of a release.
Autounit (GNU)
[22]
In beta/under construction
C++test
Yes
[23]
Cantata++
No
[24]
Commercial. Automated test script generation that provides the ability to modify calls from software under test; e.g. test error conditions by forcing malloc to return null.
Catsrunner
[25]
nice unit testing framework for cross-platform embedded development
cfix
Yes
[26]
Specialized for Windows development—both Win32 and NT kernel mode. Compatible to WinUnit.
Cgreen
[27]
includes mocks
Check
Yes
-
Cmockery
Yes
[28]
Google sponsored project.
CUnit
Yes
[29]
OS Independent (Written in an interpreted language)
CUnitWin32
Yes
[30]
For Win32. Minimalistic framework. Executes each test as a separate process.
CUT
No
[31]
CuTest
Yes
[32]
Simple, straightforward, fast. Single .c file. Used in the Apache Portable Runtime Library.
Cutter
Yes
[33]
A Unit Testing Framework for C.
EmbeddedUnit
Yes
Yes
[34]
Embedded C
FCTX
Yes
[35]
Fast and complete unit testing framework all in one header. Declare and write your functions in one step. No dependencies. Cross platform.
GLib Testing
Yes
[36]
Part of GLib
GUnit
[37]
for GNOME
LDRA
[38]
Automated unit and integration testing, and code coverage
LibU
Yes
No
[39]
BSD license; multiplatform (UNIXes and Windows); explicit test case/suite dependencies; parallel and sandboxed execution; xml, txt and customizable report formatting.
MinUnit
[40]
extreme minimalist unit testing using 2 C macros
RCUNIT
Yes
[41]
A robust C unit testing framework
RTRT
[42]
Smarttester
[43]
Automated unit and integration testing, and code coverage
TBrun
[44]
Tessy
[45]
Automated unit and integration testing, and code coverage
TestApe
[46]
Dynamic stub generation during instrumentation
Test Dept.
Yes
[47]
Can modify calls from software under test; e.g. test error conditions by stubbing malloc and letting it return null. Well documented
TPT
Yes
[48]
Time Partition Testing :Automated model based unit and integration testing for embedded systems.
Unity
Yes
[49]
Lightweight & includes features for embedded development. Can work with Mocks and Exceptions via CMock and CException .
VectorCAST/C
[50]
Automated unit and integration testing, and code coverage
Visual Assert
Yes
[51]
Unit-Testing Add-In for Visual Studio. Based on the cfix testing framework.
See .NET Programming languages below.
Name
xUnit
Fixtures
Group fixtures
Generators
Mocks
Exceptions
Macros
Templates
Grouping
Homepage
Remarks
Aeryn
No
Yes
Yes
No
No
Yes
Yes
Yes
Yes
[52]
API Sanity Autotest
Yes
Yes (specialized data types)
Yes (specialized data types)
Yes
[53]
Unit test generator for shared C/C++ libraries API in Unix-like operating systems. Open Source.
ATF
Yes
Yes
Yes
Yes
[54]
BSD Licensed. Originally developed for the NetBSD operating system but works well in most Unix-like platforms. Ability to install tests as part of a release.
Boost Test Library
No[ 1]
Yes[ 2]
Yes[ 3]
Yes
No
Yes
User decision
Yes
Suites
[55]
Part of Boost
C++test
Yes
Yes
Yes
Yes
No
Yes
Yes
Yes
Yes
[56]
Commercial.
Cantata++
No
No
No
No
Yes
Yes
Yes
[57]
Commercial. Provides ability to modify calls from software under test; e.g. test error conditions by forcing new to return null or throw an exception.
cfix
Yes
Yes
No
No
No
Yes
Yes
No
[58]
Specialized for Windows development—both Win32 and NT kernel mode. Compatible to WinUnit.
Cput
Yes
Yes
Yes
Yes
Yes
Yes
No
Suites
[59]
Library and MS Visual Studio add-in to create and run unit tests. Open Source.
CppTest
Yes
Yes
Suites
[60]
Released under LGPL
CppUnit
Yes
Yes
Yes
No
No
Yes
Yes
No
Suites
[61]
CppUTest
Yes
Yes
Yes
No
No
No
Yes
No
Suites
[62]
Limited C++ set by design to keep usage easy and allow it to work on embedded platforms. Ported to Symbian and IAR
CppUnitLite
Yes
No
No
No
Yes
No
Suites
[63]
CUTE
Yes
Yes
No
No
No
Yes
Suites
[64]
CUTE (C++ Unit Testing Easier) with Eclipse CDT integration. Single line include, without inheritance.
cutee
No
No
No
Yes
[65]
CxxTest
Yes
Yes
Yes
No
Yes*
Optional
Yes
No
Suites
[66]
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.
FCTX
Yes
Yes
Yes
No
No
No
Yes
No
Yes
[67]
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
No
No
Yes
Yes
Yes
No
[68]
A simple unit test framework. See also Accu
Google C++ Mocking Framework
Yes
No
Yes
Yes
[69]
Google C++ Testing Framework
Yes
Yes
Yes
Yes
Yes
Yes
[70]
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
[71]
Open source. Can test servers, libraries, and applications, and also test embedded software.
Igloo
Yes (Contexts)
No
No
No
Yes
Yes
Yes
Yes (nested contexts)
[72]
BDD style unit testing in C++
NanoCppUnit
No
Yes
Yes
No
No
No
Yes
Yes
Suites
[73]
Proof-of-concept
OAKUT
No
No
Yes
Yes (XML)
No
Yes
Yes
Yes
XML
[74]
Uses shared libraries / DLLs
QuickTest
No
No
No
No
No
Yes
Yes
Yes
No
[75]
ShortCUT
No
Yes
[76]
Sword
No
N/A
N/A
No
Yes
No
N/A
No
Yes
[77]
Automated or interactive. MTBF, regression, TDD. Cheapware.
Symbian OS Unit
Yes
[78]
Based on CxxTest
TBrun
[79]
Commercial.
Tessy
[80]
Commercial.
Test soon
No
Yes
Yes
Yes
No
Auto-detect
Yes
Yes
Macro (namespaces)
[81]
Complex macro logic (deliberately)
Testwell CTA++
Yes
No
No
Yes
No
Yes
Yes
Yes
[82]
Commercial.
TUT
No
No
Yes
No
No
Yes
Yes
Yes
Templates
[83]
Based on templates. Automatic test registration/discovery, customizable reports generation process, various tests run options. Easy adaptable to work on Windows CE.
Unit++
[84]
UnitTest
Yes
Yes
No
No
No
Yes
Yes
No
No
[85]
UnitTest++
No
Yes
No
No
No
Yes
Yes
Yes
Suites
[86]
UquoniTest
Yes
Yes
Yes
No
Yes
Yes
Yes
Yes
Yes
[87]
Commercial. Adds features like easy creation of (reusable) test directories, Rich Booleans in assertions, and more.
VectorCAST/C++
[88]
Commercial. Automated unit and integration testing, and code coverage.
Visual Assert
Yes
Yes
No
No
No
Yes
Yes
No
[89]
Unit-Testing Add-In for Visual Studio. Based on the cfix testing framework.
WinUnit
[90]
Focused more toward C/C++ than .NET developers
xTests
Yes
Yes
[91]
Depends on STLSoft C++ Libraries
Yaktest
[92]
Name
xUnit
Fixtures
Group fixtures
Generators
Mocks
Exceptions
Macros
Templates
Grouping
Homepage
Remarks
Name
xUnit
Fixtures
Group Fixtures
Generators
Homepage
Remarks
EUnit
Yes
Yes
Yes
Yes
[110]
Included in Erlang release R12B5 and later
Name
xUnit
Fixtures
Group fixtures
Generators
Homepage
Remarks
FUnit
Yes
Yes
Yes
No
[111]
Minimum Fortran plus assertions and boiler plate expanded via Ruby.
FRUIT
Yes
Yes
Yes
Yes
[112]
Codes in FORTRAN. Generator in Ruby.
Ftnunit
[113]
pFUnit
[114]
Name
Homepage
Remarks
MGunit
[123]
white paper
[124]
only a white paper, not a framework
Name
xUnit
Homepage
Remarks
HtmlUnit
Java headless browser emulator
HttpUnit
testing framework for web applications, typically used in combination with JUnit
IEUnit
[125]
testing framework for web applications, based on IE browser and Javascript
Canoo WebTest
[126]
Selenium
Testing framework whose playback can run in most modern web browsers to test webpages.
Name
xUnit
Homepage
Remarks
JTiger
Jtest
Yes
JUnit
Yes
JWalk
Fast, semi-automatic creation of exhaustive unit test-sets
TestNG
Yes
Actually an integration testing framework, which means its tests include unit tests, functional tests, and integration tests.
NUTester
[127]
Testing framework developed at Northeastern University to aid in teaching introductory computer science courses in Java
Concordion
[128]
Acceptance Test Driven Development
JExample
Yes
[129]
A JUnit extension that uses dependencies between test cases to reduce code duplication and improves defect localization.
DbUnit
[130]
a JUnit extension to perform unit testing with database-driven programs
JUnitEE
[131]
a JUnit extension for testing Java EE applications
Cactus
a JUnit extension for testing Java EE and web applications. Cactus tests are executed inside the Java EE /web container.
GroboUtils
[132]
a JUnit extension providing Automated documentation, class hierarchy unit testing, code coverage, and multi-threaded tests.
Mockrunner
[133]
a JUnit extension for testing testing servlets, filters, tag classes and Struts actions and forms.
Unitils
[134]
offers general utilities and features for helping with persistence layer testing and testing with mock objects. Offers specific support for testing application code that makes use of JPA, hibernate and spring. Unitils integrates with the test frameworks JUnit and TestNG.
JBehave
[135]
Behavior Driven Development
Instinct
[136]
Behavior Driven Development
JDave
[137]
Behavior Driven Development
beanSpec
[138]
Behavior Driven Development
XMLUnit
[139]
JUnit and NUnit testing for XML
EasyMock
[140]
A mock framework
JMock
[141]
A mock framework
Mockito
[142]
A mock framework, using the Hamcrest library
Mockachino
[143]
A mock framework
Name
xUnit
TAP
Client-side
Server-side
Homepage
Remarks
DOH
Yes
Yes
[144]
Dojo Objective Harness that can be run in-browser or independently via Rhino
JSUnit
Yes
No
Yes
No
[145]
QUnit
Yes
Yes
[146]
jQuery test harness
Crosscheck
No
Yes
[147]
Browserless java-based framework
J3Unit
Yes
No
[148]
JSNUnit
Yes
No
[149]
YUI Test
Yes
No
[150]
JSSpec
Yes
No
[151]
Behaviour-driven development framework
UnitTesting
Yes
No
[152]
script.aculo.us javascript test harness
JSpec
Yes
Yes
[153]
Highly readable BDD, 50+ matchers, DOM / framework independent, async, rhino, node.js support and more
Jasmine
Yes
Yes
[154]
BDD, framework independent, easy integration with Ruby projects and continuous builds. Allows for both DOM-less testing and asynchronous testing.
screw-unit
Yes
No
[155]
Requires jQuery
Test.Simple
No[ 4]
Yes
Yes
No
[156]
Write TAP-emitting unit tests in JavaScript and run them in your browser.
Test.More
No[1]
Yes
Yes
No
[157]
Write TAP-emitting unit tests in JavaScript and run them in your browser.
TestCase
Yes
No
[158]
jsUnitTest
Yes
No
[159]
Based on TestCase but without the Prototype dependency
JSTest
Yes
No
[160]
Light-weight, non-polluting browser-based framework
jsUnity
Yes
No
Yes
Yes
[161]
Context-agnostic (JavaScript, JScript (ASP/WSH), Rhino, etc.)
RhinoUnit
No
Yes
[162]
Rhino -based framework that allows tests to be run in Ant
FireUnit
Yes
No
[163]
Testing framework that provides logging and viewing within a new tab of Firebug .
Name
xUnit
Homepage
Remarks
LabVIEW Unit Test Framework
No
Generate test harnesses for VIs in LabVIEW automatically.
VI Tester
Yes
[166]
native LabVIEW object-oriented implementation of xUnit framework. Unit tests are written as VIs in LabVIEW.
Name
xUnit
Homepage
Remarks
mlUnit
Yes
[169]
mlUnit_2008a
Yes
[170]
Phelan's MUnit
[171]
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
[172]
Similar to xUnit
MATLAB xUnit Test Framework
Yes
[173]
MATLAB r2008a and later (uses OOP features introduced in this release). Renamed from mtest . Accepts both xUnit-style subclass or simple MATLAB function test cases.
.NET programming languages
Name
xUnit
Homepage
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
Visual T#
Yes
Visual T# is a unit testing framework and development environment integrated with Visual Studio. It includes T#, a programming language designed specifically to naturally express unit test intentions, and tools for compiling, running and maintaining them.
Visual Studio
No
The Visual Studio Unit Testing Framework is included with Visual Studio Team System 2005 and later editions, integrated with Visual Studio IDE. It is not included with Visual Studio Standard Edition or Visual Studio Express editions.
MSTest
No
A command-line tool for executing Visual Studio created unit tests outside of the Visual Studio IDE - not really a testing framework as it is a part of the Visual Studio Unit Testing Framework .
MbUnit
Yes
[175]
Extensible, model-based nUnit compatible framework.
TestDriven.NET
[176]
.TEST
Yes
[177]
QuickUnit.net
No
[178]
Implement unit tests without coding. Minimalist approach to test driven development.
xUnit.net
Yes
[179]
Specter
Yes
[180]
Behavior Driven Development with an easy and readable syntax for writing specifications. Includes command line, optional integration with NUnit
DbUnit.NET
[181]
NDbUnit
[182]
OCZanebug
[183]
NUnitAsp
Based on NUnit
NMate
[184]
NUnit Integration and Code Generation Addin for Microsoft Visual Studio
Roaster
Yes
[185]
NUnit based framework and tools for the .NET Compact Framework
Pex
Yes
[186]
Microsoft Research project providing White box testing for .NET, using the Z3 constraint solver to generate unit test input (rather than Fuzzing ).
EMTF
[187]
Typemock
Yes
[188]
Commercial unit testing framework with simple API and test code generation features.
PL/SQL
Name
xUnit
TAP
Homepage
Remarks
PGtools
[219]
Schema loading and testing tools for PostgreSQL.
pgTAP
Yes
Yes
[220]
Write tests in SQL or xUnit-style functions.
PGUnit
Yes
No
[221]
xUnit-style framework for stored procedures.
Name
xUnit
Homepage
Remarks
proUnit
Yes
[223]
xUnit-style framework for Progress OpenEdge procedures and objects
Name
xUnit
Generators
Fixtures
Group Fixtures
Homepage
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
[225]
a discovery-based unittest extension
py.test
Yes
Yes
Yes
Yes
[226]
distributed testing tool
TwistedTrial
Yes
Yes
Yes
No
[227]
PyUnit extensions for asynchronous and event-driven code
Name
xUnit
Homepage
Remarks
ATF
[239]
BSD Licensed. Originally developed for the NetBSD operating system but works well in most Unix-like platforms. Ability to install tests as part of a release.
ShUnit
Yes
[240]
shUnit2
Yes
[241]
Originally developed for log4sh
filterunit
[242]
Test framework for filters and other command-line programs
Tap-functions
[243]
A TAP-producing BASH library
Name
xUnit
Homepage
Remarks
SUnit
Yes
The original source of the xUnit design
Name
xUnit
Homepage
Remarks
TUnit
Yes
[250]
Embedded multi-platform wireless testing and characterization
For unit testing frameworks for VB.NET, see the .NET programming languages section.
Name
xUnit
Homepage
Remarks
XUnit
[262]
for testing
native XML programs,
individual XSLT templates,
and Java programs that deal with XML data
WUnit
[263]
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
Homepage
Remarks
juxy
[265]
a library for unit testing XSLT stylesheets from Java
UTF-X
[266]
unit testing framework for XSLT that strongly supports the test-first-design principle with test rendition and test validation features
XSLTunit
[267]
proof of concept unit testing framework for XSLT
Other
See also
Unit testing in general:
Extreme programming approach to unit testing:
References
External links