December, 2007

Wednesday, December 12th, 2007

Time for a New NUnit

As I’ve worked on NUnit 2.4 and its follow-ups, I have begun to feel that it’s time for a much more significant update to NUnit, a rethinking of what it’s all about and how it should work. Of course, at the same time, I don’t want to lose all the work that has gone into NUnit up to now. Puzzling over this, and helped by a group of dedicated NUnit users and contributors, I think I now have a direction to go.

The new NUnit 3.0 Extended Testing Platform is at the same time a simplification of NUnit and an order of magnitude larger and more complex.

How can that be, you ask? Well, it’s simpler because it’s being divided into pieces and users won’t need to understand everything, just the parts they use. Similarly, contributors will be able to focus on a small part of NUnit, adding their own touches, without rebuilding the whole thing.

On the other hand, it’s more complex because it is moving from being a framework for writing unit tests to a testing platform, one that can work with many frameworks and many runners. The new platform is centered around a testing engine, with an API that can be used by any program needing to load and run tests. You’ll be able to write your own runner, in any suitable lanuage, and get test execution functionality from the NUnit test engine. Want to write it in Ruby? No problem. Using Silverlight or Mono’s Moonlight? Again, you’re free to do so.

At the other end of things, you’ll be able to use our new plugin architecture to enable NUnit to run whatever tests you like. Plugins will be available for common alternative frameworks and to add special functionality like parallel execution to the standard NUnit tests.

I’ll post more about what’s coming in the near future. Meanwhile, for a more detailed overview, read the NUnit 3.0 Vision document.

You can expect early (alpha ) releases in the first part of next year.