Development has begun on JUnit 4.4, which promises to be more revolutionary than the previous, more evolutionary, releases since 4.1.  This release will likely contain several new features that we believe are ideal for all testers.  The first changes, however, are in our support for custom runners.  If you have ever written, or been tempted to write, a custom runner, read on.  Otherwise, feel free to archive this mail away, wait here for further updates.  :-)



Are they gone?  Good.

By annotating a test class with @RunWith, a tester can declare to JUnit that a class should be interpreted in a vastly different way than usual.  A great example is Johannes Link's ClasspathSuite runner (  However, if an extender of JUnit wanted a class to be interpreted in mostly the same way, but with a slight change (for example, the custom runner that ships with JMock 2), they are required to copy or inherit from internal classes like TestClassRunner.

In 4.4, we will add API classes that will make this process easier.  At the same time, the internal package will undergo significant changes, almost certainly breaking custom runners that have depended on these classes in the past.  In order to ease this transition, we would like to involve each of you to get your feedback about what should change, and also to provide you with frequent feedback about what is changing.  To that end, CVS HEAD has been updated with the latest work, and a 4.4-snapshots release category has been created on sourceforge for snapshot zips.  You'll notice, for example, that TestClassRunner is already gone, replaced by JUnit4ClassRunner.  Other changes are also afoot.

For further discussion on this topic, please join the junitcomplements mailing list at

I look forward to seeing you there!

   David Saff