I'd like to revive the effort to make DUnit2 the official DUnit code
base. There has been interest and discussion on this for quite some
time. Day to day I work with Paul Spain who had previously hoped to
make this possible and we've discussed how to move forward with this.
We are working with DUnit2 with Delphi XE2 daily with 5000 test
methods run via our automated build every half hour.
Summary of new features and enhancements in DUnit2:
- Incremental test name search in the GUI test runner.
- 'Run from here' action in the GUI test runner.
- Double-click a failing test in the GUI test runner to jump to the line of
source in the Delphi IDE where the test failed.
- Various automated GUI testing enhancements:
- New GUI action recorder integrated with the GUI test runner to record GUI
testing scripts. It can also be used stand-alone in your own projects for
support or other purposes.
- The GUI automation functions have been moved to a separate class and unit
so that they can be used stand-alone.
- Additional automation functions (right-click, double-click, positional
click, clicks and text entry for controls by window handle).
- Mouse cursor is moved to the control before click or text entry to
support controls that alter their behavior for mouse hover.
- Support for modal actions (modal dialogs, popup menus).
- Wait for control to be enabled before click or text entry.
- XML test results output for use in web pages, parsing results etc.
- Individual tests can be excluded, separately to disabling so that the
exclusion state is preserved regardless of the enabled/disabled state.
- Improved sharing of test case initialization and finalization across multiple
test methods as well as support for one-time initialization and finalization
across the project.
- Improved performance.
- Improved stack trace support.
- Centralised DUnit compilation options.
- Several smaller GUI test runner and runtime improvements.
- Re-designed from the ground up to be more extensible, robust and versatile.
- Large self-test suite.
The planned steps to acheive this are:
1. Write a DUnit to DUnit2 migration document that describes the
likely issues to be encountered and what changes to make to existing
projects (these are very minor, usually a change in the dpr and
2. Merge the changes made to DUnit (the small fixes and enhancements
by Mark/emb and others) into the DUnit2 code base.
3. Work with a few DUnit users to ensure that the transition from
DUnit to DUnit2 will be as smooth as possible. I have contacted two
users who had some issues getting DUnit2 to work with their test
projects in the hope to resolve this but would welcome any additional
feedback. Changing to DUnit2 is very straight-forward but there are a
couple of pointers I can provide.
4. Make a final zip of the current DUnit code for release.
5. Add a tag and/or move DUnit to a separate branch.
6. Import DUnit2 source into the DUnit project, replacing the existing
7. Make the DUnit2 project read-only (if possible).
8. Announce the move here and on the DUnit2 project.
9. Announce the move in other appropriate forums (e.g. embarcadero, fpc).
I have noticed from previous discussion that there seems to be only a
loose ownership of the DUnit project - a few admins and passionate
users that contribute. I would hate to see DUnit left without
possibility to move it forward in the future should Mark leave
Embarcadero or other admins lose touch with the project altogether, so
I am prepared to take an active role in moving DUnit forward in some
official capacity, hopefully increasing the lifespan and activity in
To make the changes above I will need read-write and possibly admin
access to the DUnit project. Assuming that this proposal is feasible
can one of the admins please arrange this access for me - thanks.
Please let me know your thoughts.