Skip to content

Commit 1aac5ed

Browse files
authored
Merge pull request #991 from nunit/nunit4.3
Updated release notes for NUnit 4.3
2 parents 30abdd5 + c195792 commit 1aac5ed

File tree

1 file changed

+144
-0
lines changed

1 file changed

+144
-0
lines changed

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

Lines changed: 144 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,153 @@
22
uid: frameworkreleasenotes
33
---
44
<!-- markdownlint-disable-file MD013 -->
5+
<!-- markdownlint-disable-file MD033 -->
56

67
# Framework Release
78

9+
## NUnit 4.3.0 - Dec 15. 2024
10+
11+
This release includes a series of enhancements and bug fixes. Notably, some of the bug fixes address issues related to a lack of type safety in NUnit. See issues [4877](https://github.com/nunit/nunit/issues/4877),
12+
[4876](https://github.com/nunit/nunit/issues/4876), [4875](https://github.com/nunit/nunit/issues/4875), [4874](https://github.com/nunit/nunit/issues/4874) and [150](https://github.com/nunit/nunit/issues/150).
13+
14+
Be aware that this might cause compile errors in cases where the code was previously ignored. These errors can be safely resolved by removing the affected code.
15+
16+
There are 29 issues fixed in this release.
17+
18+
### Enhancements
19+
20+
* [4890](https://github.com/nunit/nunit/issues/4890) Add .net 8 as a target framework in the package. Thanks to NUnit Team member [Manfred Brands](https://github.com/manfred-brands) for [PR 4884](https://github.com/nunit/nunit/pull/4884)
21+
* [4886](https://github.com/nunit/nunit/issues/4886) Optimize ToArray()[0] with First() in TestAssert class in TestAssert.cs. Thanks to [Saurav-shres](https://github.com/Saurav-shres) for [PR 4888](https://github.com/nunit/nunit/pull/4888)
22+
* [4862](https://github.com/nunit/nunit/issues/4862) PropertiesComparer 32 Property Limit Error Message. Thanks to [Cincidial](https://github.com/Cincidial) for [PR 4870](https://github.com/nunit/nunit/pull/4870)
23+
* [4861](https://github.com/nunit/nunit/issues/4861) Always repeat Test x times. Thanks to [Christoph](https://github.com/cfuerbachersparks) for [PR 4864](https://github.com/nunit/nunit/pull/4864)
24+
* [4852](https://github.com/nunit/nunit/issues/4852) Expand the usability of `Contains.Key(...).WithValue(...)`. Thanks to [Michael Render](https://github.com/RenderMichael) for [PR 4854](https://github.com/nunit/nunit/pull/4854)
25+
* [4846](https://github.com/nunit/nunit/issues/4846) Add NET9 target for the framework tests. Thanks to [Leon Lux](https://github.com/Lachstec) for [PR 4851](https://github.com/nunit/nunit/pull/4851)
26+
* [4839](https://github.com/nunit/nunit/issues/4839) Allow to use collection expressions with collection constraints. Thanks to [Oleksandr Liakhevych](https://github.com/Dreamescaper) for [PR 4840](https://github.com/nunit/nunit/pull/4840)
27+
* [4832](https://github.com/nunit/nunit/issues/4832) Setting thread names to make debugging easier. Thanks to NUnit Team member [Terje Sandstrom](https://github.com/OsirisTerje) for [PR 4835](https://github.com/nunit/nunit/pull/4835)
28+
* [4811](https://github.com/nunit/nunit/issues/4811) Assert.ThatAsync does not support polling. Thanks to [Oleksandr Liakhevych](https://github.com/Dreamescaper) for [PR 4813](https://github.com/nunit/nunit/pull/4813)
29+
* [4771](https://github.com/nunit/nunit/issues/4771) Support tuples in inline data. Thanks to [MaxKot](https://github.com/MaxKot) for [PR 4772](https://github.com/nunit/nunit/pull/4772)
30+
* [2492](https://github.com/nunit/nunit/issues/2492) EqualConstraint.Using(StringComparer.*) causes overload ambiguity error. Thanks to NUnit Team member [Manfred Brands](https://github.com/manfred-brands) for [PR 4882](https://github.com/nunit/nunit/pull/4882)
31+
32+
### Bug fixes
33+
34+
* [4887](https://github.com/nunit/nunit/issues/4887) FileLoadException for NUnit 4.2.2 when upgrade the System.Buffers to 4.6.0. Thanks to NUnit Team member [Terje Sandstrom](https://github.com/OsirisTerje) for [PR 4891](https://github.com/nunit/nunit/pull/4891)
35+
* [4877](https://github.com/nunit/nunit/issues/4877) Fix EqualTo modifiers for DateTime. Thanks to NUnit Team member [Manfred Brands](https://github.com/manfred-brands) for [PR 4882](https://github.com/nunit/nunit/pull/4882)
36+
* [4876](https://github.com/nunit/nunit/issues/4876) Equal.Within Fails With Negative Tolerance. Thanks to [Raffael Botschen](https://github.com/RaffaelCH) for [PR 4881](https://github.com/nunit/nunit/pull/4881)
37+
* [4875](https://github.com/nunit/nunit/issues/4875) String constraints should not allow using Within. Thanks to NUnit Team member [Manfred Brands](https://github.com/manfred-brands) for [PR 4882](https://github.com/nunit/nunit/pull/4882)
38+
* [4874](https://github.com/nunit/nunit/issues/4874) IgnoreCase, Seconds and Minutes can be used on numerical constraints. Thanks to NUnit Team member [Manfred Brands](https://github.com/manfred-brands) for [PR 4882](https://github.com/nunit/nunit/pull/4882)
39+
* [4868](https://github.com/nunit/nunit/issues/4868) TestCase- and TestCaseSourceAttribute cannot handle generic test methods where method parameter is Nullable&lt;T&gt;. Thanks to NUnit Team member [Manfred Brands](https://github.com/manfred-brands) for [PR 4872](https://github.com/nunit/nunit/pull/4872)
40+
* [4836](https://github.com/nunit/nunit/issues/4836) PropertiesComparer doesn't work well with records. Thanks to [Oleksandr Liakhevych](https://github.com/Dreamescaper) for [PR 4837](https://github.com/nunit/nunit/pull/4837)
41+
* [4807](https://github.com/nunit/nunit/issues/4807) Is.EqualTo with empty ValueTuple throws System.NotSupportedException "Specified Tolerance not supported for instances of type 'System.ValueTuple' and 'System.ValueTuple'" after updating to NUnit 4.2.2. Thanks to NUnit Team member [Manfred Brands](https://github.com/manfred-brands) for [PR 4809](https://github.com/nunit/nunit/pull/4809)
42+
* [4281](https://github.com/nunit/nunit/issues/4281) Throws and Delayed (.After) Constraints do not cooperate, resulting in incorrectly failing test. Thanks to [Oleksandr Liakhevych](https://github.com/Dreamescaper) for [PR 4815](https://github.com/nunit/nunit/pull/4815)
43+
* [4110](https://github.com/nunit/nunit/issues/4110) Support running single-threaded async tests on Linux. Thanks to NUnit Team member [Manfred Brands](https://github.com/manfred-brands) for [PR 4883](https://github.com/nunit/nunit/pull/4883)
44+
* [3772](https://github.com/nunit/nunit/issues/3772) IsEquivalent on default ImmutableArray throws exception. Thanks to [Sergio L.](https://github.com/mr-sergito) for [PR 4850](https://github.com/nunit/nunit/pull/4850)
45+
* [3713](https://github.com/nunit/nunit/issues/3713) Description of --where=EXPRESSION missing from Notes section. Thanks to [rsjackson3](https://github.com/rsjackson3) for [PR 4817](https://github.com/nunit/nunit/pull/4817)
46+
* [150](https://github.com/nunit/nunit/issues/150) Improve inference of type arguments in generic test methods. Thanks to NUnit Team member [Steven Weerdenburg](https://github.com/stevenaw) for [PR 4873](https://github.com/nunit/nunit/pull/4873)
47+
48+
### Refactorings
49+
50+
None
51+
52+
### Internal fixes
53+
54+
* [4865](https://github.com/nunit/nunit/issues/4865) Increase Legacy NUnit so at least all methods are covered. Thanks to NUnit Team member [Manfred Brands](https://github.com/manfred-brands) for [PR 4871](https://github.com/nunit/nunit/pull/4871)
55+
* [4841](https://github.com/nunit/nunit/issues/4841) MacOS test failure. Thanks to NUnit Team member [Manfred Brands](https://github.com/manfred-brands) for [PR 4842](https://github.com/nunit/nunit/pull/4842)
56+
* [4819](https://github.com/nunit/nunit/issues/4819) Remove `StringUtil.Compare()` and update references in the tests. Thanks to [Sergio L.](https://github.com/mr-sergito) for [PR 4827](https://github.com/nunit/nunit/pull/4827)
57+
* [4798](https://github.com/nunit/nunit/issues/4798) Add a test to ensure direct framework dependencies in csproj are reflected in nuspec. Thanks to NUnit Team member [Terje Sandstrom](https://github.com/OsirisTerje) for [PR 4799](https://github.com/nunit/nunit/pull/4799)
58+
59+
### Deprecated features
60+
61+
None
62+
63+
### Others
64+
65+
### The following issues are marked as breaking changes
66+
67+
None
68+
69+
### Acknowledgements
70+
71+
First and foremost, we want to recognize the exceptional contributions of team members [Manfred Brands](https://github.com/manfred-brands) and [Steven Weerdenburg](https://github.com/stevenaw) for their dedicated efforts on this release, particularly their work on improving type safety.
72+
73+
We also express our heartfelt gratitude to everyone who has contributed to this release
74+
by reporting bugs, suggesting enhancements, and providing valuable feedback.
75+
Your efforts help make NUnit better for the entire community.
76+
77+
A special thank you to the following reporters for identifying issues:
78+
79+
<table>
80+
<tr>
81+
<td><a href="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/cfuerbachersparks">Christoph</a></td>
82+
<td><a href="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/KrzysFR">Christophe Chevalier</a></td>
83+
<td><a href="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/Cincidial">Cincidial</a></td>
84+
<td><a href="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/jnm2">Joseph Musser</a></td>
85+
</tr>
86+
<tr>
87+
<td><a href="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/Lachstec">Leon Lux</a></td>
88+
<td><a href="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/manfred-brands">Manfred Brands</a></td>
89+
<td><a href="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/MaxKot">MaxKot</a></td>
90+
<td><a href="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/MCMrARM">MCMrARM</a></td>
91+
</tr>
92+
<tr>
93+
<td><a href="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/RenderMichael">Michael Render</a></td>
94+
<td><a href="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/michaelamaura">Michaela Maura Elschner</a></td>
95+
<td><a href="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/mzh3511">mzh3511</a></td>
96+
<td><a href="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/Dreamescaper">Oleksandr Liakhevych</a></td>
97+
</tr>
98+
<tr>
99+
<td><a href="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/RaffaelCH">Raffael Botschen</a></td>
100+
<td><a href="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/biocoder-frodo">Sander</a></td>
101+
<td><a href="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/Saurav-shres">Saurav-shres</a></td>
102+
<td><a href="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/seesharks">seesharks</a></td>
103+
</tr>
104+
<tr>
105+
<td><a href="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/stevenaw">Steven Weerdenburg</a></td>
106+
<td><a href="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/OsirisTerje">Terje Sandstrom</a></td>
107+
<td><a href="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/wimvangool">Wim van Gool</a></td>
108+
</tr>
109+
</table>
110+
111+
and to the commenters who engaged in discussions and offered further insights:
112+
113+
<table>
114+
<tr>
115+
<td><a href="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/CharliePoole">CharliePoole</a></td>
116+
<td><a href="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/ChrisMaddock">Chris Maddock</a></td>
117+
<td><a href="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/cfuerbachersparks">Christoph</a></td>
118+
<td><a href="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/KrzysFR">Christophe Chevalier</a></td>
119+
</tr>
120+
<tr>
121+
<td><a href="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/Cincidial">Cincidial</a></td>
122+
<td><a href="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/Kooddammn">Harsh Jain</a></td>
123+
<td><a href="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/jnm2">Joseph Musser</a></td>
124+
<td><a href="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/Lachstec">Leon Lux</a></td>
125+
</tr>
126+
<tr>
127+
<td><a href="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/manfred-brands">Manfred Brands</a></td>
128+
<td><a href="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/MaxKot">MaxKot</a></td>
129+
<td><a href="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/RenderMichael">Michael Render</a></td>
130+
<td><a href="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/michaelamaura">Michaela Maura Elschner</a></td>
131+
</tr>
132+
<tr>
133+
<td><a href="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/mikkelbu">Mikkel Nylander Bundgaard</a></td>
134+
<td><a href="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/Dreamescaper">Oleksandr Liakhevych</a></td>
135+
<td><a href="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/PicNet">PicNet</a></td>
136+
<td><a href="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/RaffaelCH">Raffael Botschen</a></td>
137+
</tr>
138+
<tr>
139+
<td><a href="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/rprouse">Rob Prouse</a></td>
140+
<td><a href="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/rsjackson3">rsjackson3</a></td>
141+
<td><a href="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/sba-schleupen">Sascha Bartl</a></td>
142+
<td><a href="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/Saurav-shres">Saurav-shres</a></td>
143+
</tr>
144+
<tr>
145+
<td><a href="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/mr-sergito">Sergio L.</a></td>
146+
<td><a href="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/stevenaw">Steven Weerdenburg</a></td>
147+
<td><a href="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/OsirisTerje">Terje Sandstrom</a></td>
148+
<td><a href="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/wimvangool">Wim van Gool</a></td>
149+
</tr>
150+
</table>
151+
8152
## NUnit 4.2.2 - August 31. 2024
9153

10154
This hotfix addresses an issue with asynchronous behavior introduced in version 4.2.0. It resolves a regression bug that affected the release.

0 commit comments

Comments
 (0)