This is mainly a bugfix release, but it contains several features that were intended for the 3.4 release.
NUnit 3.2 introduced a change that ran each test on its own thread. In hindsight, this was a mistake and made it difficult for tests that required a specific context. We have reverted to the previous behaviour of running tests on the same thread unless a test attribute requires a new thread. We also added a new
[SingleThreaded] attribute that you can apply to your test fixture to explicitly declare the requirement. Using this attribute allows the framework to raise an error if you mistakenly use an attribute on a test that requires a new thread.
Developers who target .NET 3.5 using the .NET 2.0 version of the framework ran into conflicts with some of the compatibility classes in NUnit. To fix this, we have reinstated the .NET 3.5 version of NUnit.
Very large test suites were using a large amount of memory causing paging and slow test runs on some systems. To reduce memory pressure, we are now releasing objects earlier, greatly reducing memory requirements.
The NUnit Engine now has an EventListener extension point for people who want to write extensions that respond to specific events during test runs.
For a full list of issues fixed in this release, please see the release notes.