From James Newkirk's Blog:
"In the 5 years since the release of NUnit 2.0, there have been millions of lines of code written using the various unit testing frameworks for .NET. About a year ago it became clear to myself and Brad Wilson that there were some very clear patterns of success (and failure) with the tools we were using for writing tests. Rather than repeating guidance about "do X" or "don't do Y", it seemed like it was the right time to reconsider the framework itself and see if we could codify some of those rules."
Single Object Instance per Test Method
No [SetUp] or [TearDown]
No [ExpectedException]
Aspect-Like Functionality
Reducing the Number of Custom Attributes
Use of Generics
Anonymous Delegates
Extensibility
Go to XUnit.net Home Page on CodePlex