Share on Facebook Share on Twitter Email
Answers.com

List of unit testing frameworks

 
Wikipedia: List of unit testing frameworks

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.

Contents

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

ABAP

Name xUnit Remarks
ABAP Unit Yes since SAP NetWeaver 2004

ActionScript / Adobe Flex

Name xUnit Remarks
FlexUnit
FlexUnit 4 Yes Metadata-driven unit testing for Flex 2,3 and 4 and ActionScript 3 projects
Reflex Unit Metadata-driven unit testing framework for Flex 2 and 3
FUnit Yes Metadata-driven unit testing for Flex
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
dpUInt Unit and Integration testing framework for Flex 2 and 3
Fluint Unit and Integration testing framework for Flex 2 and 3
mojotest Yes (under developement) Unit testing for ActionScript 3, Flash Player 10

Ada

Name xUnit Remarks
AUnit
AdaTEST 95
Ahven
TBrun
VectorCAST/Ada

AppleScript

Name xUnit Remarks
ASUnit Yes Testing framework for AppleScript, influenced by SUnit, ASTest and Python unittest
ASTest Yes A testing framework for AppleScript

ASP

Name xUnit Remarks
ASPUnit

BPEL

Name xUnit Remarks
BPELUnit

C

Name xUnit Fixtures Group fixtures Generators Remarks
API Sanity Autotest Yes Yes (specialized
data types)
Yes (specialized
data types)
Yes Unit test generator for shared C/C++ libraries API in Unix-like operating systems. Open Source.
ATF 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) In beta/under construction
C++test Yes
Cantata++ No 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.
Catrunner nice unit testing framework for cross-platform embedded development
cfix Yes Specialized for Windows development—both Win32 and NT kernel mode. Compatible to WinUnit.
Cgreen includes mocks
Check Yes
Cmockery Yes Google sponsored project.
CUnit Yes OS Independent (Written in an interpreted language)
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
FCTX Yes 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 Part of GLib
GUnit for GNOME
LDRA Automated unit and integration testing, and code coverage
MinUnit extreme minimalist unit testing using 2 C macros
RCUNIT Yes A robust C unit testing framework
RTRT
Smarttester Automated unit and integration testing, and code coverage
TBrun
Tessy Automated unit and integration testing, and code coverage
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
Visual Assert Yes Unit-Testing Add-In for Visual Studio. Based on the cfix testing framework.

C#

See .NET Programming languages below.

C++

Name xUnit Fixtures Group fixtures Generators Mocks Exceptions Macros Templates Grouping Remarks
Aeryn No Yes Yes No No Yes Yes Yes Yes
API Sanity Autotest Yes Yes (specialized
data types)
Yes (specialized
data types)
Yes Unit test generator for shared C/C++ libraries API in Unix-like operating systems. Open Source.
ATF Yes Yes Yes Yes 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 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 new to return null or throw an exception.
cfix Yes Yes No No No Yes Yes No Specialized for Windows development—both Win32 and NT kernel mode. Compatible to WinUnit.
Cput Yes Yes Yes Yes Yes Yes No Suites Library and MS Visual Studio add-in to create and run unit tests. Open Source.
CppTest
CppUnit Yes Yes Yes No No Yes Yes No Suites http://sourceforge.net/apps/mediawiki/cppunit/index.php?title=Main_Page
CppUTest Yes Yes Yes No No No Yes No Suites 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
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.
FCTX Yes Yes Yes No No No Yes No Yes 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 A simple unit test framework. See also Accu
Google C++ Mocking Framework Yes No Yes Yes
Google C++ Testing Framework Yes Yes Yes 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
ShortCUT No Yes
Sword No N/A N/A No Yes No N/A No Yes Automated or interactive. MTBF, regression, TDD. Cheapware.
Symbian OS Unit Yes Based on CxxTest
TBrun Commercial.
Tessy 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 Commercial.
TUT No No Yes No No Yes Yes Yes Templates Based on templates. Automatic test registration/discovery, customizable reports generation process, various tests run options. Easy adaptable to work on Windows CE.
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
UquoniTest Yes Yes Yes No Yes Yes Yes Yes Yes Commercial. Adds features like easy creation of (reusable) test directories, Rich Booleans in assertions, and more.
VectorCAST/C++ Commercial. Automated unit and integration testing, and code coverage.
Visual Assert Yes Yes No No No Yes Yes No Unit-Testing Add-In for Visual Studio. Based on the cfix testing framework.
WinUnit Focused more toward C/C++than .NET developers
xTests Yes Yes Depends on STLSoft C++ Libraries
Yaktest
Name xUnit Fixtures Group fixtures Generators Mocks Exceptions Macros Templates Grouping Remarks

Cg

Name xUnit Remarks
UnitTestCg No Pixel and Vertex Shaders supported.

CFML (ColdFusion)

Name xUnit Remarks
CFUnit
cfcUnit Yes
MXUnit Yes Unit Test Framework and Eclipse Plugin for CFMX
MockBox No Mocking/Stubbing Framework for CFMX

Common Lisp

Name xUnit Remarks
CLUnit
CyberTiggyr Test
FiveAM
FReT
grand-prix
HEUTE
LIFT
lisp-unit
RT
stefil
XLUnit

Curl

Name xUnit Remarks
CurlUnit

Delphi

Name xUnit Remarks
DUnit Yes

Emacs Lisp

Name xUnit Remarks
ElUnit
elk-test No
Unit-test.el

Erlang

Name xUnit Fixtures Group Fixtures Generators Remarks
EUnit Yes Yes Yes Yes Included in Erlang release R12B5 and later

Fortran

Name xUnit Fixtures Group fixtures Generators Remarks
FUnit Yes Yes Yes No Documentation Minimum Fortran plus assertions and boiler plate expanded via Ruby.
FRUIT Yes Yes Yes Yes Documentation Codes in FORTRAN. Generator in Ruby.
Ftnunit Documentation
pFUnit Documentation

FSharp

Name xUnit Remarks
FsCheck No Random testing (Fuzzing) combinator library based on QuickCheck for Haskell.
FsTest Yes Domain specific language for writing language oriented programming specifications in F#. Based on FsUnit syntax, but targeting xUnit.net.
FsUnit No Stand-alone Behavior Driven Development framework, with natural syntax for writing specifications.
Other See also listing for .NET programming languages, elsewhere on this page.

GLSL

Name xUnit Remarks
UnitTestCg No Fragment and Vertex Programs supported.

Groovy

Name xUnit Remarks
easyb BDD

Genexus

Name xUnit Remarks
GXUnit Yes It's a framework (prototype) to perform unit testing for Genexus. You can find the source at Assembla here

Haskell

Name xUnit Remarks
HUnit Yes
QuickCheck QuickCheck

HLSL

Name xUnit Remarks
UnitTestCg No Pixel and Vertex Shaders supported.

ITT IDL

Name Remarks
MGunit
white paper only a white paper, not a framework

Internet

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 whose playback can run in most modern web browsers to test webpages.

Java

Name xUnit 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 Testing framework developed at Northeastern University to aid in teaching introductory computer science courses in Java
Concordion Acceptance Test Driven Development
JExample Yes A JUnit extension that uses dependencies between test cases to reduce code duplication and improves defect localization.
DbUnit a JUnit extension to perform unit testing with database-driven programs
JUnitEE 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 a JUnit extension providing Automated documentation, class hierarchy unit testing, code coverage, and multi-threaded tests.
Mockrunner a JUnit extension for testing testing servlets, filters, tag classes and Struts actions and forms.
Unitils 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 Behavior Driven Development
Instinct Behavior Driven Development
JDave Behavior Driven Development
beanSpec Behavior Driven Development
XMLUnit JUnit and NUnit testing for XML
EasyMock A mock framework
JMock A mock framework
Mockito A mock framework, using the Hamcrest library

JavaScript

Name xUnit TAP Client-side Server-side Remarks
DOH Yes Yes Dojo Objective Harness that can be run in-browser or independently via Rhino
JSUnit Yes No Yes No
QUnit Yes No jQuery test harness
Crosscheck No Yes Browserless java-based framework
J3Unit Yes No
JSNUnit Yes No
YUI Test Yes No
JSSpec Yes No Behaviour-driven development framework
script.aculo.us UnitTesting Yes No script.aculo.us javascript test harness
JSpec Yes Yes Highly readable BDD, 50+ matchers, DOM / framework independent, async, rhino, node.js support and more
screw-unit Yes No Requires jQuery
Test.Simple No Yes Yes No Write TAP-emitting unit tests in JavaScript and run them in your browser.
Test.More No Yes Yes No Write TAP-emitting unit tests in JavaScript and run them in your browser.
TestCase Yes No
jsUnitTest Yes No Based on TestCase but without the Prototype dependency
JSTest Yes No Light-weight, non-polluting browser-based framework
jsUnity Yes No Yes Yes Context-agnostic (JavaScript, JScript (ASP/WSH), Rhino, etc.)
RhinoUnit No Yes Rhino-based framework that allows tests to be run in Ant
FireUnit Yes No Testing framework that provides logging and viewing within a new tab of Firebug.

Lasso

Name xUnit Remarks
L-Unit

LaTeX

Name xUnit Remarks
qsunit

LabVIEW

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.

Lua

Name xUnit Remarks
LuaUnit
lunit

MATLAB

Name xUnit Remarks
mlUnit Yes
mlUnit_2008a 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
Matlab_xUnit Yes MATLAB r2008a and later (uses OOP features introduced in this release). Renamed from mtest. Accepts both xUnit-style subclass or simple m-file test cases.

MySQL

Name xUnit Remarks
utMySQL Yes

.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
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 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).
EMTF
Typemock Yes Commercial unit testing framework with simple API and test code generation features.

Objective-C

Name xUnit Remarks
ObjcUnit
OCUnit
WOTest
iPhone Unit Testing Unit testing framework based on OCUnit that works on the iPhone simulator and device.

Ocaml

Name xUnit TAP Remarks
OUnit Based on HUnit, which is based on JUnit
TestSimple Yes Generates TAP
FORT

Object Pascal (Free Pascal)

Name xUnit Remarks
FPCUnit Yes This is a port to Free Pascal of the JUnit core framework.

PegaRULES Process Commander

Name xUnit Remarks
PRUnit Yes xUnit style testing adapted to PRPC

Perl

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
Test::Able Yes Yes xUnit style testing with Moose

PHP

Name xUnit TAP Remarks
PHPUnit [1] Yes Yes (via logging) Manual Gui CoolPHPUnit
SimpleTest [2] Yes No

Lastcraft

Testilence Yes No
PHPSpec Yes No Behavior Driven Development
lime No Yes Fully documented here
Apache-Test No Yes PHP implementation of Test::More (test-more.php)
ojes No No Documentation Driven Testing
SnapTest Yes Yes

PL/SQL

Name xUnit Remarks
utPLSQL Initially developed by Steven Feuerstein, an open source unit testing framework for PL/SQL development modeled on the Junit and xUnit frameworks.
Quest Code Tester for Oracle A commercial PL/SQL testing tool from the makers of Toad and Steven Feuerstein.
pl/unit
PL/SQL Unit Testing for Oracle (PLUTO) Yes Open source unit testing framework modeled after JUnit and based on the Oracle PL/SQL object system
ruby-plsql-spec PL/SQL unit testing with Ruby open source libraries (ruby-plsql and RSpec)

PostgreSQL

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

PowerBuilder

Name xUnit Remarks
PBUnit

Prolog

Name xUnit Remarks
PlUnit

Python

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

R Programming Language

Name xUnit Remarks
RUnit No Open source

REALbasic

Name xUnit Remarks
RBUnit No

Rebol

Name xUnit Remarks
Runit

Ruby

Name xUnit Remarks
Test::Unit Yes
RSpec Behaviour-driven development framework

SAS

Name xUnit Remarks
FUTS Yes the Framework for Unit Testing SAS
SCLUnit Yes SAS/AF implementation of the xUnit unit testing framework SAS

Scala

Name xUnit Remarks
Rehearsal with JMock like Expectations and natural language test names
ScUnit JUnit style testing with fixture method injection and matchers for assertion
specs Behavior Driven Development
ScalaCheck Similar to QuickCheck

Scheme

Name xUnit Remarks
SchemeUnit Yes

Shell

Name xUnit Remarks
ATF 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
shUnit2 Yes Originally developed for log4sh
filterunit Test framework for filters and other command-line programs

Simulink

Name xUnit Remarks
slUnit

Smalltalk

Name xUnit Remarks
SUnit Yes The original source of the xUnit design

SQL

Name xUnit Remarks
SQLUnit
DbFit Compare FitNesse.

Tcl

Name xUnit Remarks
tcltest

TinyOS/nesC

Name xUnit Remarks
TUnit Yes Embedded multi-platform wireless testing and characterization

Transact-SQL

Name xUnit Remarks
TSQLUnit Yes
utTSQL Yes
Visual Studio Team Edition for Database Professionals
T.S.T.

Visual FoxPro

Name xUnit Remarks
FoxUnit

Visual Basic (VB6)

For unit testing frameworks for VB.NET, see the .NET programming languages section.

Name xUnit Remarks
vbUnit Visual Basic and COM objects
vbUnitFree 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

XML

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
AntUnit for testing Apache Ant tasks

XSLT

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

Other

Name xUnit Remarks
Test Manager
IdMUnit Yes Identity management

See also

Unit testing in general:

Extreme programming approach to unit testing:

External links


Search unanswered questions...
Enter a question here...
Search: All sources Community Q&A Reference topics
 
 

 

Copyrights:

Wikipedia. This article is licensed under the Creative Commons Attribution/Share-Alike License. It uses material from the Wikipedia article "List of unit testing frameworks" Read more