List of unit testing frameworks

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.

Contents

[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.
  • 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

[edit] ABAP

Name xUnit Remarks
ABAP Unit Yes since SAP NetWeaver 2004

[edit] ActionScript / Flex

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
AsUnit Flash Players 6, 7, 8 and 9
As2lib Unit Test

[edit] Ada

Name xUnit Remarks
AUnit
AdaTEST 95
Ahven
TBrun
VectorCAST/Ada

[edit] AppleScript

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

[edit] BPEL

Name xUnit Remarks
BPELUnit

[edit] C

Name xUnit Remarks
Autounit (GNU)
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).
Cgreen includes mocks
Check Yes
CUnit Yes
CUT No
CuTest Yes Simple, straighforward, fast. Single .c file. Used in the Apache Portable Runtime Library.
EmbeddedUnit Embedded C
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
VectorCAST/C Automated unit and integration testing, and code coverage

[edit] C++

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 No No Yes No Yes User decision Yes Suites Part of Boost
C++test Yes No No Yes No Yes Yes Yes Yes
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/moin.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.
CuTest Yes Yes No No No No Suites CuTest (C Unit Testing). Simple, straighforward, fast. Single .c file. Used in the Apache Portable Runtime Library.
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
hestia No Yes Yes No No Yes Yes No Suites This open source framework can test servers, libraries, and applications, Unlike most other frameworks, it can also test embedded software. It can send output to html, text, xml, standard error, standard output, or other output.
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++
Yaktest

[edit] Cg

Name xUnit Remarks
UnitTestCg No Pixel and Vertex Shaders supported.

[edit] ColdFusion (CFML)

Name xUnit Remarks
CFUnit
cfcUnit Yes
MXUnit Yes Unit Test Framework and Eclipse Plugin for CFMX

[edit] Common Lisp

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

[edit] Delphi

Name xUnit Remarks
DUnit
DUnit Yes at SourceForge

[edit] Emacs Lisp

Name xUnit Remarks
ElUnit
Unit-test.el

[edit] 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

[edit] GLSL

Name xUnit Remarks
UnitTestCg No Fragment and Vertex Programs supported.

[edit] Groovy

Name xUnit Remarks
easyb BDD

[edit] Haskell

Name xUnit Remarks
HUnit Yes
QuickCheck QuickCheck

[edit] HLSL

Name xUnit Remarks
UnitTestCg No Pixel and Vertex Shaders supported.

[edit] ITT IDL

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

[edit] 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 that runs in IE and Firefox to test webpages.

[edit] Java

Name xUnit Remarks
thisTest Extremely lite weight alternative to jUnit (which is rather heavy in some respects)
JTiger
Jtest Yes
JUnit Yes
JWalk Fast, semi-automatic creation of exhaustive unit test-sets
TestNG Yes
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.
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

[edit] JavaScript

Name xUnit Remarks
JSUnit Yes
Crosscheck
J3Unit
JSNUnit
YUI Test (Beta)
JSSpec Behaviour-driven development framework
script.aculo.us UnitTesting script.aculo.us javascript test harness

[edit] Lasso

Name xUnit Remarks
L-Unit

[edit] LaTeX

Name xUnit Remarks
qsunit

[edit] Lua

Name xUnit Remarks
LuaUnit
lunit

[edit] MATLAB

Name xUnit Remarks
mlUnit Yes
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.

[edit] MySQL

Name xUnit Remarks
utMySQL Yes

[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
Visual Studio 2005 Team Edition Includes a comprehensive set of unit testing tools.
MbUnit Yes Extensible, model-based nUnit compatible framework.
TestDriven.NET
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

[edit] Objective-C

Name xUnit Remarks
ObjcUnit
OCUnit
WOTest

[edit] Ocaml

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

[edit] PegaRULES Process Commander

Name xUnit Remarks
PRUnit Yes xUnit style testing adapted to PRPC

[edit] Perl

Name xUnit Remarks
TAP the Test Anything Protocol used by most Perl tests
Test::Harness the standard Perl test runner and TAP parser
Test::More included with all modern Perl installations
Test::Class Yes xUnit style testing adapted to Perl
Test::Builder a module for making more testing modules
Test::Unit (a.k.a. PerlUnit) Yes a fairly straight port of JUnit to Perl
Test::Unit::Lite Yes Test::Unit replacement without external dependencies and with some bugs fixed

[edit] PHP

Name xUnit Remarks
PHPUnit PHPUnit Yes Pocket Guide Gui CoolPHPUnit
SimpleTest SimpleTest Yes

Lastcraft

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

[edit] PL/SQL

Name xUnit Remarks
utPLSQL
Quest Code Tester for Oracle A commercial PL/SQL testing tool from the makers of Toad and Steven Feuerstein.
pl/unit

[edit] PostgreSQL

Name xUnit Remarks
PGtools Schema loading and testing tools for PostgreSQL.

[edit] PowerBuilder

Name xUnit Remarks
PBUnit

[edit] Prolog

Name xUnit Remarks
PlUnit

[edit] 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

[edit] REALbasic

Name xUnit Remarks
RBUnit No

[edit] Ruby

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

[edit] SAS

Name xUnit Remarks
FUTS Yes the Framework for Unit Testing SAS

[edit] Scala

Name xUnit Remarks
Rehersal 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

[edit] Scheme

Name xUnit Remarks
SchemeUnit Yes

[edit] Shell

Name xUnit Remarks
ShUnit No longer actively maintained
shUnit2 Originally developed for log4sh

[edit] Simulink

Name xUnit Remarks
slUnit

[edit] Smalltalk

Name xUnit Remarks
SUnit Yes It's actually the original source of the xUnit design

[edit] SQL

Name xUnit Remarks
SQLUnit
Visual Studio Team Edition for Database Professionals

[edit] Tcl

Name xUnit Remarks
tcltest

[edit] TinyOS/nesC

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

[edit] Transact-SQL

Name xUnit Remarks
TSQLUnit
Visual Studio Team Edition for Database Professionals

[edit] Visual FoxPro

Name xUnit Remarks
FoxUnit

[edit] Visual Basic

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)
csUnit Yes Visual Basic .NET; includes GUI, command line, VS2005 plug-in
TinyUnit Visual Basic 6, VB .NET, and PHP5
SimplyVBUnit Yes VB6 Unit Testing Framework modeled after the popular NUnit for .NET

[edit] XML

Name xUnit Remarks
XUnit for testing
  • native XML programs,
  • individual XSLT templates,
  • and Java programs that deal with XML data
Name xUnit Remarks
AntUnit for testing Apache Ant tasks

[edit] 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

[edit] Other

Name xUnit Remarks
Test Manager
IdMUnit Yes Identity management

[edit] See also

Unit testing in general:

Extreme programming approach to unit testing:

[edit] External links

Languages