Testing framework for the Object Pascal language using the Free Pascal compiler.
Failed to load latest commit information.
3rdparty Minor code formatting. Jul 15, 2009
demo Renamed all GUITestRunner.pas units to lowercase guitestrunner.pas Jul 13, 2015
docs initial import from tiOPF repository Jul 14, 2009
extras/template_test_project Minor change so FPC under *nix doesn't complain. Mar 1, 2013
images Adds the "select failed tests" image to the project. Dec 6, 2011
src Console Runner: the -l parameter now outputs if tests are enable/disa… Sep 14, 2016
tests self-test: Update API from WideString to UnicodeString type usage. Aug 8, 2016
.gitattributes Adds git maintenance files. Feb 17, 2016
.gitignore Adds git maintenance files. Feb 17, 2016
README.txt Updated urls in the readme file Mar 19, 2015
fptest.lpk Adds a FPCUnit compatibility interface Jul 13, 2015
fptest.pas rename the Lazarus package dunit2.lpk to fptest.lpk Jun 16, 2011
fptest_fpgui.lpk Renamed all GUITestRunner.pas units to lowercase guitestrunner.pas Jul 13, 2015
fptest_fpgui.pas Implements a new Gauge component with customized painting. Dec 8, 2011
fptest_lcl.lpk Renamed all GUITestRunner.pas units to lowercase guitestrunner.pas Jul 13, 2015
fptest_lcl.pas Rename TestCaseOpts units to avoid conflict with fpcunit package Jul 5, 2015
fptestlazideintf.pas Add unit output option in default project Feb 1, 2016
project1.lpi test project: minor tweak to project file settings. Aug 8, 2016
project1.lpr test project - removed "run manually" option in program unit. Feb 17, 2016
sample_tests.pas Extended sample unit tests Jul 15, 2009


Welcome to Free Pascal Testing Framework (FPTest)

This is a fork of the DUnit2 project, and further adapted for the use
with the Free Pascal Compiler and fpGUI Toolkit. The original code was
created by the late Peter McNab. He single handedly added some excellent
features to DUnit2 and used the extensive test suite from tiOPF as his

FPTest has a Text Test Runner and a GUI Test Runner (fpGUI Toolkit only
at the moment).

Support can be found in the form of a newsgroup (NNTP Server) at:

  Server:  geldenhuys.co.uk
  Port:    119

For those that can't use NNTP news client software for some reason, can
also access the support newsgroup via a web browser using the following


Unit tests comprise of classes derived from TTestCase, each containing one
or more published test procedures as shown in the example below. TTestCase
is now an interfaced object.

  TTestMyComms = class(TTestCase)
    procedure VerifyThatThereIsAnUnAssignedCommPort;
    procedure VerifyThatTheCommPortOpens;
    procedure VerifyThatTheCommPortCloses;

Through the magic of RTTI, FPTest is able to execute the published test
procedures in an orderly fashion. Code written into test methods
performs tests on user's code, and calls one or more Check() procedures
to signal pass or fail to the test framework.

For more information about FPTest, have a look at the various documents
in the 'docs' directory.

Brief History
As of July 2009, I (Graeme Geldenhuys) decided to continue Peter's work
on DUnit2, but renamed the project to prevent confusion with the Delphi
based DUnit2 project hosted on SourceForge [which is a continuation of
Peter's work too]. I applied some of my own ideas listed below:

 * No need for Delphi.NET support. The product doesn't exist anymore
   and .NET has its own testing framework anyway, called NUnit.
 * Must work with the Free Pascal Compiler (FPC).
 * Don't need Delphi support, because FPC is a excellent compiler.
 * With FPC support comes the idea that it must be cross-platform
   friendly as well.
 * Due to the previous item, removing the idea of writing to the Windows
   Registry is a logical step. Using something like INI, XML or JSON config
   files will do a great job, are easy to edit, and works for all OSes.

             ----------- END ------------