🚀 This release of NUnit finally drops support for .NET 2.0. If your application still targets .NET 2.0, your tests will need to target at least .NET 3.5. Microsoft ended support for .NET 2.0 on July 12, 2011. Microsoft recommends that everyone migrate to at least .NET Framework 3.5 SP1 for security and performance fixes.
🚀 This release dramatically improves NUnit support for async tests including returning ValueTask and custom tasks from tests, improved handling of SynchronizationContexts and better exception handling.
✅ The .NET Standard 2.0 version of NUnit continues to gain more functionality that is found in the .NET 4.5 version of the framework like setting the ApartmentState and enabling Timeout on tests.
- More informative assertion messages
- PlatformAttribute is available on .NET Standard 2.0 and now detects .NET Core
- ValuesAttribute now works with nullable types
- 🏁 Async tests detecting and running Windows Forms or WPF message pumps rather than deadlocking
- 👌 Support for UWP 10.0 is back via .NET Standard 1.4
➕ Added a namespace to the props file included in the NuGet package to make it compatible with versions of Visual Studio prior to VS 2017.
🚀 This release adds a .NET Standard 2.0 version of the framework which re-enables most of the features that have been missing in our earlier .NET Standard builds like parallelism, timeouts, directory and path based asserts, etc. It also contains numerous bug fixes and smaller enhancements. We've improved our XML docs, fixed performance issues and added more detail to Multiple Asserts.
🚀 This release also contains source-indexed PDB files allowing developers to debug into the NUnit Framework. This allows you to track down errors or see how the framework works.
🐧 In order to support the .NET Standard 2.0 version, the NUnit project switched to the new CSPROJ format and now requires Visual Studio 2017 to compile. This only effects people contributing to the project. NUnit still supports building and compiling your tests in older .NET IDEs and NUnit still supports older versions of the .NET Framework back to 2.0. For contributors, NUnit can now compile all supported targets on Windows, Linux and Mac using the Cake command line build.
🚀 This release addresses numerous parallelization issues that were introduced in 3.8 when method level parallelization was added. Most of the parallelization issues resolved were tests never completing when using some combinations of parallel tests and
ApartmentStatenot being properly applied to tests in all cases.
🚑 This release fixes two critical regressions in the 3.8 release. The first caused the console runner to crash if you are using test parameters. The second issue caused collection constraints checking for multiple items in a collection to fail.
🚀 This release removes several methods and attributes that were marked obsolete in the
🚀 original 3.0 release. Support for iOS and Android has been improved.
✅ An issue that caused unit tests to run slower was addressed as was a bug that prevented
the use of Assert.Multiple in async code.
The Order attribute can now also be applied to the class level to set the order
✅ that test fixtures will be run.
- 345 Order of Fixture Execution
- 1151 Include differences in output for Is.EquivalentTo
- 🚚 1324 Remove CollectionContainsConstraint
- ✅ 1670 Attaching files to the test result
- 1674 InRange-Constraint must work with object
- ✅ 1851 TestCaseSource unable to pass one element byte array
- ⏱ 1996 Timeout does not work if native code is running at the time
- 2004 Has.One as synonym for Has.Exactly(1).Items
- ✅ 2062 TestCaseSource attribute causes test to pass when source is not defined
- 2144 Allow option on RandomAttribute to produce distinct values
- ✅ 2179 Some NUnit project's tests fail on systems with CultureInfo other than en
- 2195 Contains.Substring with custom StringComparison
- 2196 Expose ParallelizableAttribute (and other attribute) constructor arguments as properties
- ✅ 2201 Invalid platform name passed to PlatformAttribute should mark test NotRunnable
- 2208 StackFIlter trims leading spaces from each line
- 0️⃣ 2213 SetCultureAttribute: CultureInfo ctor should use default culture settings
- 🐎 2217 Console runner performance varies wildly depending on environmental characteristics
- 🚚 2219 Remove Obsolete Attributes
- 2225 OneTimeTearDown and Dispose Ordering
- 2237 System.Runtime.Loader not available for iOS/Android
- ✅ 2242 Running tests directly should never surface a NullReferenceException
- 0️⃣ 2244 Add KeyValuePair<TKey, TValue> to the default formatters
- 2251 Randomizer.NextGuid()
- ✅ 2253 Parallelizable(ParallelScope.Fixtures) doesn't work on a TestFixture
- 2254 EqualTo on ValueTuple with Nullable unexpected
- ✅ 2261 When an assembly is marked with ParallelScope.None and there are Parallelizable tests Nunit hangs
- 2269 Parallelizable and NonParallelizable attributes on setup and teardown silently ignored
- ✅ 2276 Intermittent test failures in Travic CI: TestContextTests
- 👻 2281 Add type constraint for Throws and any method requiring Exception
- ✅ 2288 Killing thread cancels test run
- 2292 Is.Ordered.By() with a field throws NullReferenceException
- ✅ 2298 Write TestParametersDictionary to xml result file in readable format
- 📦 2299 NUnitLite NuGet package no longer installs NUnit NuGet package
- ⏪ 2304 Revert accidental doc removal
- 🖨 2305 Correct misprint ".con" -> ".com"
- 📜 2312 Prevent crash on invalid --result parsing in NUnitLite
- 2313 Incorrect xmldoc on RetryAttribute
- ⚡️ 2332 Update build script to use NUnitConsoleRunner v3.7.0
- 2335 Execute OneTimeTearDown as early as possible when running fixtures in parallel
- 🚚 2342 Remove deprecated Is.String* Constraints
- 2348 Can't use Assert.Multiple with async code
- ✅ 2353 Provide additional Result information through TestContext
- 🏗 2358 Get framework to build under Mono 5.0
- 2360 Obsolete CollectionContainsConstraint Constructors
- ✅ 2361 NUnit Parallelizable and OneTimeSetUp with no namespace results in single-threaded test execution
- ✅ 2370 TestCaseAttribute can't convert int to nullable long
🚑 This is a hotfix release that addresses occasional hangs when using test parallization and fixes crashes in NCrunch prior to version 3.9.
🚀 This release of NUnit expands on parallel test execution to allow test methods to be run in parallel. Please see the Parallelizable Attribute for more information.
🏗 NUnit 3.7 also drops the Portable build of the framework and replaces it with a .NET Standard 1.3 version to complement the .NET Standard 1.6 version. This change enables several constraints and other features in the .NET Standard builds that weren't available in portable like Path and Directory based asserts.
AssertionHelperclass has been deprecated because it is seldom used and has not received any of the updates that Asserts and Constraints receive. If your code is using the
AssertionHelperclass, we recommend that you migrate your asserts.
🚑 This is a hotfix release of the framework that addresses critical issues found in the 3.6 release.
- 1962 A Theory with no data passes
- 👷 1986 NUnitLite ignores --workers option
- 1994 NUnitLite runner crashing when --trace is specified
- ✅ 2017 Two NUnit project's tests fail on systems with comma decimal mark settings
- 2043 Regression in 3.6.0 when catching AssertionException