The mother of all unit testing frameworks


Stable releases

SUnit 4.0

The latest official release of SUnit is 4.0 for the following dialects:

The following dialects are being ported:

See the News page for information of what has changed in recent releases.

SUnit 3.1

Until the port of SUnit 4.0 to all dialects completes, SUnit 3.1 remains the official release for other dialects. All versions are available from the download page here on SourceForge.

The following dialects have been officially released:

Please read the release notes for more information about compatibility with earlier versions of the Smalltalk dialect in question.

SUnit 3.1 is not available for:

Back Ports

SUnit 3.1 back ports

SUnit 3.1 is targeted at the latest release of the various Smalltalk dialects. For people still using older versions, there are a number of back ports available.

Older versions

SUnit 3.0

The last official release of SUnit is 3.0. This release, as well as other older versions, are available from the download page of the ANSI-Smalltalk-Tests project on SourceForge:

SUnit 2.7

Not all dialects or versions made it to the 3.0 release level. The last stable release was 2.7, and some older dialect versions stayed at that level. All these versions are available from the download page of the ANSI-Smalltalk-Tests project on SourceForge:

Also, versions of 2.7 for other dialects are available here.

Package structure

SUnit delivery format

SUnit Camp Smalltalk is always available in four parts:

SUnitPreload will have, for any specific dialect, whatever is needed in the way of base language additions in order to support the SUnit core. All additions are based on ANSI standard protocols, however, individual methods will have an #sunit prefix, so as to avoid namespace collisions.

SUnit has the core of the system, and tiny guts they are! Just the four main Classes: TestCase, TestSuite, TestResult and TestResource. This has been made as portable as possible and in the future will have the exact same code for all dialects.

SUnitTests has the ExampleSetTest, and the tests for SUnit itself. These, since they sit on top of SUnit, are even more portable than SUnit itself!

SUnitUI has the nastiest of the nasties. It has TestRunner. The "Base" UI is made to act the same on all dialects. This code is just plain not portable between dialects. (Most dialects now have their own UIs for running SUnit which are more powerful than TestRunner.)

An additional part is available for those Smalltalks that fully utilize Namespaces; SUnitNamespaceTests. This will have any Dialect Specific tests to make sure that SUnit plays nice with any local Namespace capability. Logo