Skip to content

Commit 79468e1

Browse files
committed
Release notes for nunit framework 5.0.0
1 parent fc9f376 commit 79468e1

1 file changed

Lines changed: 159 additions & 0 deletions

File tree

docs/articles/nunit/release-notes/framework.md

Lines changed: 159 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,165 @@ uid: frameworkreleasenotes
77

88
# Framework Release
99

10+
## NUnit 5.0.0-beta.1 - TBD
11+
12+
There are 25 issues fixed in this release.
13+
14+
### Enhancements
15+
16+
* [5260](https://github.com/nunit/nunit/issues/5260) Add a "warning" threshold to the `MaxTime` attribute. Thanks to [Ricardo Macedo](https://github.com/RicardoMacedo-prj) for [PR 5261](https://github.com/nunit/nunit/pull/5261)
17+
* [4857](https://github.com/nunit/nunit/issues/4857) Drop .NET 6 as a build target of the framework. Thanks to NUnit Team member [Manfred Brands](https://github.com/manfred-brands) for [PR 4884](https://github.com/nunit/nunit/pull/4884)
18+
* [4717](https://github.com/nunit/nunit/issues/4717) Provide generic type definitions for `TestCaseData` to make it type safe. Thanks to [Jonathan Gilbert](https://github.com/logiclrd) for [PR 5138](https://github.com/nunit/nunit/pull/5138)
19+
* [4384](https://github.com/nunit/nunit/issues/4384) Assert.ThrowsAsync, Assert.CatchAsync, and Assert.DoesNotThrowAsync should be awaitable. Thanks to NUnit Team member [Steven Weerdenburg](https://github.com/stevenaw) for [PR 5268](https://github.com/nunit/nunit/pull/5268)
20+
* [3947](https://github.com/nunit/nunit/issues/3947) Simplify asserting ArgumentException.ParamName. Thanks to NUnit Team member [Steven Weerdenburg](https://github.com/stevenaw) for [PR 5304](https://github.com/nunit/nunit/pull/5304)
21+
22+
### Bug fixes
23+
24+
* [5273](https://github.com/nunit/nunit/issues/5273) Verify that generic AssignableToConstraint and AssignableFromConstraint works as expected. Thanks to NUnit Team member [Steven Weerdenburg](https://github.com/stevenaw) for [PR 5277](https://github.com/nunit/nunit/pull/5277)
25+
* [5252](https://github.com/nunit/nunit/issues/5252) Upgrade to 4.6.0 containing #4824 is source-incompatible in F# even on net9.
26+
* [5247](https://github.com/nunit/nunit/issues/5247) Assert for null-valued `dynamic` variables doesn't work in 4.6.0.
27+
* [4320](https://github.com/nunit/nunit/issues/4320) AssemblyHelper throws Exception when loading dynamically compiled Assemblies. Thanks to NUnit Team member [Steven Weerdenburg](https://github.com/stevenaw) for [PR 5308](https://github.com/nunit/nunit/pull/5308)
28+
* [3849](https://github.com/nunit/nunit/issues/3849) Assert.Catch inside Assert.Multiple gives unclear failure message. Thanks to NUnit Team member [Terje Sandstrom](https://github.com/OsirisTerje) for [PR 5280](https://github.com/nunit/nunit/pull/5280)
29+
* [1001](https://github.com/nunit/nunit/issues/1001) Too many Inconclusive test results. Thanks to NUnit Team member [Steven Weerdenburg](https://github.com/stevenaw) for [PR 5251](https://github.com/nunit/nunit/pull/5251)
30+
31+
### Refactorings
32+
33+
* [5273](https://github.com/nunit/nunit/issues/5273) Verify that generic AssignableToConstraint and AssignableFromConstraint works as expected. Thanks to NUnit Team member [Steven Weerdenburg](https://github.com/stevenaw) for [PR 5277](https://github.com/nunit/nunit/pull/5277)
34+
* [5222](https://github.com/nunit/nunit/issues/5222) AssemblyVersion.
35+
* [5180](https://github.com/nunit/nunit/issues/5180) Change namespace for legacy String-, Collection-, File- and DirectoryAssert classes. Thanks to NUnit Team member [Terje Sandstrom](https://github.com/OsirisTerje) for [PR 5181](https://github.com/nunit/nunit/pull/5181)
36+
37+
### Internal fixes
38+
39+
* [5301](https://github.com/nunit/nunit/issues/5301) Update README and nuspec files for NUnit 5. Thanks to NUnit Team member [Terje Sandstrom](https://github.com/OsirisTerje) for [PR 5302](https://github.com/nunit/nunit/pull/5302)
40+
* [5228](https://github.com/nunit/nunit/issues/5228) Set assembly version to Minver default for the 5.0.0.0 release. Thanks to NUnit Team member [Terje Sandstrom](https://github.com/OsirisTerje) for [PR 5299](https://github.com/nunit/nunit/pull/5299)
41+
* [5222](https://github.com/nunit/nunit/issues/5222) AssemblyVersion.
42+
* [5197](https://github.com/nunit/nunit/issues/5197) Add files to support AI agent coding. Thanks to [Joel Dickson](https://github.com/joeldickson) for [PR 5225](https://github.com/nunit/nunit/pull/5225)
43+
44+
### Deprecated features
45+
46+
* [5265](https://github.com/nunit/nunit/issues/5265) 4.6 breaks our tests because of TestDelegate / Action ambiguity.
47+
* [5263](https://github.com/nunit/nunit/issues/5263) Deprecate non-generic CollectionTally class and move the result class out of nested class. Thanks to NUnit Team member [Steven Weerdenburg](https://github.com/stevenaw) for [PR 5310](https://github.com/nunit/nunit/pull/5310)
48+
* [5253](https://github.com/nunit/nunit/issues/5253) Remove TestDelegate and ActualValueDelegate. Thanks to NUnit Team member [Terje Sandstrom](https://github.com/OsirisTerje) for [PR 5262](https://github.com/nunit/nunit/pull/5262)
49+
50+
### Others
51+
52+
* [5271](https://github.com/nunit/nunit/issues/5271) Update Collection Equivalency performance tests to use MaxTime. Thanks to [Silva Dev BR](https://github.com/Will-thom) for [PR 5276](https://github.com/nunit/nunit/pull/5276)
53+
* [5267](https://github.com/nunit/nunit/issues/5267) Remove the `OverloadResolutionPriority` attributes added to support the transition to Action and Func-based APIs.
54+
* [5218](https://github.com/nunit/nunit/issues/5218) Feat/allow custom comparer null self.
55+
* [5145](https://github.com/nunit/nunit/issues/5145) Remove the `object?` overloads for `Is.SameAs` and underlying constraint. Thanks to NUnit Team member [Steven Weerdenburg](https://github.com/stevenaw) for [PR 5160](https://github.com/nunit/nunit/pull/5160)
56+
* [5007](https://github.com/nunit/nunit/issues/5007) Create generic type checking constraints. Thanks to NUnit Team member [Steven Weerdenburg](https://github.com/stevenaw) for [PR 5191](https://github.com/nunit/nunit/pull/5191)
57+
* [3669](https://github.com/nunit/nunit/issues/3669) Update recognized platform names so that "NET" and "DotNET" means .NET instead of .NET Framework. Thanks to NUnit Team member [Steven Weerdenburg](https://github.com/stevenaw) for [PR 5300](https://github.com/nunit/nunit/pull/5300)
58+
59+
### The following issues are marked as breaking changes
60+
61+
* [5265](https://github.com/nunit/nunit/issues/5265) 4.6 breaks our tests because of TestDelegate / Action ambiguity.
62+
* [5263](https://github.com/nunit/nunit/issues/5263) Deprecate non-generic CollectionTally class and move the result class out of nested class. Thanks to NUnit Team member [Steven Weerdenburg](https://github.com/stevenaw) for [PR 5310](https://github.com/nunit/nunit/pull/5310)
63+
* [5253](https://github.com/nunit/nunit/issues/5253) Remove TestDelegate and ActualValueDelegate. Thanks to NUnit Team member [Terje Sandstrom](https://github.com/OsirisTerje) for [PR 5262](https://github.com/nunit/nunit/pull/5262)
64+
* [5180](https://github.com/nunit/nunit/issues/5180) Change namespace for legacy String-, Collection-, File- and DirectoryAssert classes. Thanks to NUnit Team member [Terje Sandstrom](https://github.com/OsirisTerje) for [PR 5181](https://github.com/nunit/nunit/pull/5181)
65+
* [5145](https://github.com/nunit/nunit/issues/5145) Remove the `object?` overloads for `Is.SameAs` and underlying constraint. Thanks to NUnit Team member [Steven Weerdenburg](https://github.com/stevenaw) for [PR 5160](https://github.com/nunit/nunit/pull/5160)
66+
* [5007](https://github.com/nunit/nunit/issues/5007) Create generic type checking constraints. Thanks to NUnit Team member [Steven Weerdenburg](https://github.com/stevenaw) for [PR 5191](https://github.com/nunit/nunit/pull/5191)
67+
* [4857](https://github.com/nunit/nunit/issues/4857) Drop .NET 6 as a build target of the framework. Thanks to NUnit Team member [Manfred Brands](https://github.com/manfred-brands) for [PR 4884](https://github.com/nunit/nunit/pull/4884)
68+
* [4384](https://github.com/nunit/nunit/issues/4384) Assert.ThrowsAsync, Assert.CatchAsync, and Assert.DoesNotThrowAsync should be awaitable. Thanks to NUnit Team member [Steven Weerdenburg](https://github.com/stevenaw) for [PR 5268](https://github.com/nunit/nunit/pull/5268)
69+
70+
> [!IMPORTANT]
71+
> This issue is a breaking change.
72+
>
73+
> The following assertions now return a `Task` which much be awaited in order for the assertion to be evaluated.
74+
> * `Assert.ThrowsAsync`
75+
> * `Assert.CatchAsync`
76+
> * `Assert.DoesNotThrowAsync`
77+
>
78+
> Version 4.14 or higher of the `nunit.analyzers` nuget package can help automate this conversion by reporting and optionally fixing unawaited assertions. The analyzer will also update the immediately enclosing function to return a `Task` if necessary.
79+
80+
* [3669](https://github.com/nunit/nunit/issues/3669) Update recognized platform names so that "NET" and "DotNET" means .NET instead of .NET Framework. Thanks to NUnit Team member [Steven Weerdenburg](https://github.com/stevenaw) for [PR 5300](https://github.com/nunit/nunit/pull/5300)
81+
82+
> [!IMPORTANT]
83+
> This issue is a breaking change.
84+
>
85+
> The meaning of "NET" and "DotNET" in the `PlatformAttribute` have been updated in NUnit 5 to better align with Microsoft's current terminology. These identifiers could previously be used to allow tests to run only on .NET Framework. Modern .NET releases such as .NET 8, 9, or 10 are now generally known as just ".NET" and so "NET" and "DotNET" will now be used to target modern .NET platforms rather than .NET Framework. New `NETFramework` and `DotNETFramework` identifiers have also been added to better differentiate. Existing usages of "NET" or "DotNET" which are intended to target to .NET Framework will need to be updated to either "NETFramework" or "DotNETFramework".
86+
>
87+
> Please see the below compatibility table for more info. `netfx` refers to .NET Framework and `modern .NET` refers to .NET Core and newer releases.
88+
>
89+
> | Identifier | NUnit 4 | NUnit 5 |
90+
> | --------------------- | --------------- | --------------- |
91+
> | NET | netfx | modern .NET |
92+
> | NETFramework || netfx |
93+
> | NETCore | modern .NET | modern .NET |
94+
> | DotNET | netfx | modern .NET |
95+
> | DotNETCore | modern .NET | modern .NET |
96+
> | DotNETFramework || netfx |
97+
98+
### Acknowledgements
99+
100+
We want to express our heartfelt gratitude to everyone who has contributed to this release
101+
by reporting bugs, suggesting enhancements, and providing valuable feedback.
102+
Your efforts help make NUnit better for the entire community.
103+
104+
A special thank you to the following reporters for identifying issues:
105+
106+
<table>
107+
<tr>
108+
<td><a href="https://github.com/CharliePoole">CharliePoole</a></td>
109+
<td><a href="https://github.com/heaths">Heath Stewart</a></td>
110+
<td><a href="https://github.com/hfickes">HF</a></td>
111+
<td><a href="https://github.com/joeldickson">Joel Dickson</a></td>
112+
</tr>
113+
<tr>
114+
<td><a href="https://github.com/MaceWindu">MaceWindu</a></td>
115+
<td><a href="https://github.com/mikkelbu">Mikkel Nylander Bundgaard</a></td>
116+
<td><a href="https://github.com/Smaug123">Patrick Stevens</a></td>
117+
<td><a href="https://github.com/provegard">Per Rovegård</a></td>
118+
</tr>
119+
<tr>
120+
<td><a href="https://github.com/rmiller-glrealitylabs">R. Miller</a></td>
121+
<td><a href="https://github.com/rachied">Rachid</a></td>
122+
<td><a href="https://github.com/rprouse">Rob Prouse</a></td>
123+
<td><a href="https://github.com/stevenaw">Steven Weerdenburg</a></td>
124+
</tr>
125+
<tr>
126+
<td><a href="https://github.com/OsirisTerje">Terje Sandstrom</a></td>
127+
</tr>
128+
</table>
129+
130+
and to the commenters who engaged in discussions and offered further insights:
131+
132+
<table>
133+
<tr>
134+
<td><a href="https://github.com/CharliePoole">CharliePoole</a></td>
135+
<td><a href="https://github.com/hfickes">HF</a></td>
136+
<td><a href="https://github.com/joeldickson">Joel Dickson</a></td>
137+
<td><a href="https://github.com/logiclrd">Jonathan Gilbert</a></td>
138+
</tr>
139+
<tr>
140+
<td><a href="https://github.com/jnm2">Joseph Musser</a></td>
141+
<td><a href="https://github.com/m4ggo">m4ggo</a></td>
142+
<td><a href="https://github.com/MaceWindu">MaceWindu</a></td>
143+
<td><a href="https://github.com/manfred-brands">Manfred Brands</a></td>
144+
</tr>
145+
<tr>
146+
<td><a href="https://github.com/MartinFayRAX">MartinFayRAX</a></td>
147+
<td><a href="https://github.com/mikeparker">Mike Parker</a></td>
148+
<td><a href="https://github.com/mikkelbu">Mikkel Nylander Bundgaard</a></td>
149+
<td><a href="https://github.com/seky16">Ondřej Sekáč</a></td>
150+
</tr>
151+
<tr>
152+
<td><a href="https://github.com/Smaug123">Patrick Stevens</a></td>
153+
<td><a href="https://github.com/provegard">Per Rovegård</a></td>
154+
<td><a href="https://github.com/rmiller-glrealitylabs">R. Miller</a></td>
155+
<td><a href="https://github.com/rachied">Rachid</a></td>
156+
</tr>
157+
<tr>
158+
<td><a href="https://github.com/RicardoMacedo-prj">Ricardo Macedo</a></td>
159+
<td><a href="https://github.com/rprouse">Rob Prouse</a></td>
160+
<td><a href="https://github.com/mr-russ">Russell Smith</a></td>
161+
<td><a href="https://github.com/Will-thom">Silva Dev BR</a></td>
162+
</tr>
163+
<tr>
164+
<td><a href="https://github.com/stevenaw">Steven Weerdenburg</a></td>
165+
<td><a href="https://github.com/OsirisTerje">Terje Sandstrom</a></td>
166+
</tr>
167+
</table>
168+
10169
## NUnit 4.6.1 - May 18, 2026
11170

12171
This is a hotfix release for two regression bugs.

0 commit comments

Comments
 (0)