You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
DUnitX is a new test framework, taking ideas from DUnit, NUnit and other test frameworks. It is designed to work with Delphi 2010 or later, it makes use of language/RTL features that are not available in older versions of Delphi.
DUnitX Features
Any class can contain tests
Attribute based testing
An extensive Assert Class
Setup and TearDown per test method and per test fixture.
API Documented using Xml-Doc
Console Based Runner
XML Logging
produces output compatible with NUnit (compatible with CI servers like ContinuaCI)
produces output compatible with JUnit (compatible with Gitlab CI)
Cross platform currently supporting:
Win32,Win64 and OSX Compilers.
Limited backwards compatibility with DUnit test classes.
This is far from a complete list, but a few planned features are listed here to help indicate future direction.
GUI Test Runner - Use TestInsight
Multi-threaded tests - the ability to have test fixtures run in their own
threads.
Remote logging - Simple way to run tests on remote machines (just an idea at this point)
Data driven test cases - the ability to provide a test method with a data source and test each entry in the data source. The data source will be virtualised so it can be anything (text file, db table etc).
Tips and Tricks
In order to workaround the Delphi XE3 Bug, you need to add the unit DUnitX.Init to your test projects.
To use this GitHub version of DUnitX in place of the bundled version included with RAD Studio, it’s pretty simple by following these steps (as the bundled version is quite a few commits behind this repo):
Remove the Embarcadero Unit test package (DUnitXIDEExpertXXX.bpl) from the installed packages list.
In the cloned repo, open DUnitX_IDE_Expert_XXXX.dproj (matching your Delphi version), compile and install the package.
In your unit test projects, adjust your search paths to point to the repo\Source folder.