From 8ead7799d6a9d920a5ac18112a5fba6e6f85d8c5 Mon Sep 17 00:00:00 2001 From: Manfred Brands Date: Sat, 4 Nov 2023 12:33:35 +0800 Subject: [PATCH 01/18] Migration Guide for NUnit 4.0 --- .../release-notes/Nunit4.0-MigrationGuide.md | 167 ++++++++++++++++++ .../nunit/release-notes/breaking-changes.md | 10 ++ .../IDE0002-ClassicAssert-into-Assert.png | Bin 0 -> 39328 bytes .../NUnit.Analyzer-ClassicAssert-CodeFix.png | Bin 0 -> 50284 bytes .../NUnit.Analyzer-ClassicAssert-Warning.png | Bin 0 -> 45253 bytes ...it.Analyzer-ReplaceFormatSpecification.png | Bin 0 -> 72022 bytes 6 files changed, 177 insertions(+) create mode 100644 docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md create mode 100644 docs/images/IDE0002-ClassicAssert-into-Assert.png create mode 100644 docs/images/NUnit.Analyzer-ClassicAssert-CodeFix.png create mode 100644 docs/images/NUnit.Analyzer-ClassicAssert-Warning.png create mode 100644 docs/images/NUnit.Analyzer-ReplaceFormatSpecification.png diff --git a/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md b/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md new file mode 100644 index 000000000..b693afca6 --- /dev/null +++ b/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md @@ -0,0 +1,167 @@ +--- +uid: nunit40migrationguide +--- + +# NUnit 4.0 Migration Guide + +NUnit 4.0 has a few [breaking changes](../release-notes/breaking-changes.md#NUnit-40) +making it neither binary nor source code compatible with NUnit 3.14.0 + +* Change to [Classic Asserts](../writing-tests/assertions/assertion-models/classic.md) +* Removal of `Assert.That` overloads with _format_ specification and `params`. + +## Classic Assert migration + +There are different ways to migrate these to NUnit 4.0 + +* Convert Classic Assert to the [Constraint model](../writing-tests/assertions/assertion-models/constraint.md) +* Update source code to new namespace and class name +* Using `global using` aliases + +In the sections below we use the following simple test as an example: + +```csharp +public class Tests +{ + [Test] + public void TestSomeCalculation() + { + int actual = SomeCalculation(); + Assert.AreEqual(42, actual, "Expected {0} to be 42", actual); + StringAssert.StartsWith("42", actualText, "Expected '{0}' to start with '42'", actualText); + } + + private static int SomeCalculation() => 42; +} +``` + +### Convert Classic Assert to Constraint Model + +Although the code can be converted manually, that is a lot of work. + +Luckily, the [NUnit.Analyzer](https://www.nuget.org/packages/NUnit.Analyzers) has had rules and associated code fixes for a while now. +Version _3.10.0_ knows about the 2nd non-backward compatible change and will convert the _format_ specification and `params` into a `FormattableString`. + +_CAVEAT_: The analyzers only run when the code compiles, so _before_ upgrading `nunit` to version `4.0.0`! + +In our example code, the analyzer will flag the `Assert.AreEqual` as shown below: +![NUnit.Analyzer Classic Assert Warning](~/images/NUnit.Analyzer-ClassicAssert-Warning.png) + +Running the associated `Transform to constraint model` code fix in Visual Studio will convert the code into: + +```csharp +public class Tests +{ + [Test] + public void TestSomeCalculation() + { + int actual = SomeCalculation(); + Assert.That(actual, Is.EqualTo(42), $"Expected {actual} to be 42"); + } + + private static int SomeCalculation() => 42; +} +``` + +The analyzer code fix supports _Batch Fixing_: + +![NUnit.Analyzer Classic Assert CodeFix](~/images/NUnit.Analyzer-ClassicAssert-CodeFix.png) + +This allows changing all corresponding `Assert` usages for a document, project or a complete solution. + +There are many classic asserts and most of these come with a separate code analyzer rule and code fix. +Although it allows full configuration to what classic asserts to keep or convert, it means that a developer has to repeat this process multiple times, once for each assert method. + +NUnit.Analyzer also has code fixers for `CollectionAssert` and `StringAssert`. + +```csharp +string actualText = actual.ToString(); +StringAssert.StartsWith("42", actualText, "Expected '{0}' to start with '42'", actualText); +``` + +Will get converted into: + +```csharp +string actualText = actual.ToString(); +Assert.That(actualText, Does.StartWith("42"), $"Expected '{actualText}' to start with '42'"); +``` + +There are no code fixers for `FileAssert` and `DirectoryAssert`. +They could be added, but we don't expect these to be used to much. + +### Convert Classic Assert into NUnit4 equivalent + +If you want to keep the Classic Asserts and not convert them to the constraint model, +but do want to use the new NUnit4 naming you need to update the code manually. + +The NUnit.Analyzer can't help here as the code either doesn't compile before the change or after, +depending on what version of `nunit` you are compiling with. + +If you _only_ use classic asserts, you can get away with a couple of global substitutes: + +1. Convert `using NUnit.Framework;` into _both_ `using NUnit.Framework;using NUnit.Framework.Legacy;`
+Depending on your editor you can automatically insert a newline between the two `using` statements. +1. Convert `Assert` into `ClassicAssert`.
+This global substitute will also convert those asserts that have not changed. +You can narrow the scope of this substitute to do only the asserts that need converting, but there are quite a lot. + + 1. Convert `Assert.AreEqual` into `ClassicAssert.AreEqual`. + 1. Convert `Assert.True` into `ClassicAssert.True`. + 1. Similar for `IsTrue`, `False`, `IsFalse`, `Greater`, `Less`, ... + + Depending on what is less work, alternatively you can reverse the substitution of those that shouldn't be have been changed: + 1. Convert `ClassicAssert.That` into `Assert.That`. + 1. Convert `ClassicAssert.Fail` into `Assert.Fail`. + 1. Convert `ClassicAssert.Throws` into `Assert.Throws`. + 1. Etc. + + Or if you use Visual Studio, it will raise an [IDE0002](https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0002) with a code fix that can convert all of those that are not considered _classic_ back to assert in one swoop: + + ![ClassicAssert to Assert](~/images/IDE0002-ClassicAssert-into-Assert.png) + +### Use `global using` aliases + +If you use SDK 6.0 or newer that supports C#10, you can upgrade without modifying any actual tests by adding the following aliases to `GlobalUsings.cs` + +```csharp +global using Assert = NUnit.Framework.Legacy.ClassicAssert; +global using CollectionAssert = NUnit.Framework.Legacy.CollectionAssert; +global using StringAssert = NUnit.Framework.Legacy.StringAssert; +global using DirectoryAssert = NUnit.Framework.Legacy.DirectoryAssert; +global using FileAssert = NUnit.Framework.Legacy.FileAssert; +``` + +Note that this doesn't mean you have to target .NET 6.0. This also works if targeting .NET Framework as it is purely done on the source code level. + +## Assert.That with _format_ specification and `params` overload conversion + +These overloads were removed to allow for better messages in case of failure. +See [Towards-NUnit4.md](../Towards-NUnit4.md#Improved-Assert-Result-Messages) + +NUnit4 has been optimized such that these formattable strings only get formatted in case the test is failing. + +```csharp +int actual = SomeCalculation(); +Assert.That(actual, Is.EqualTo(42), "Expected {0} to be 42", actual); +``` + +Needs to be converted into: + +```csharp +int actual = SomeCalculation(); +Assert.That(actual, Is.EqualTo(42), $"Expected {actual} to be 42"); +``` + +To make this transition easy, the Nunit.Analyzer has been updated with a new rule and corresponding code-fix: + +![Replace Format Specification with Formattable String](~/images/NUnit.Analyzer-ReplaceFormatSpecification.png) + +## Using NUnit Extension libraries + +If your code doesn't call `nunit` asserts directly but uses a local `NUnitExtension` library or a 3rd party one like [Shoudly](https://github.com/shouldly/shouldly) then that dependency needs to be upgraded _before_ you can upgrade your own code. + +If the library is not NUnit 4.0 compliant, you will get error messages like: + +```txt +System.MissingMethodException : Method not found: 'Void NUnit.Framework.Assert.That(!!0, NUnit.Framework.Constraints.IResolveConstraint, System.String, System.Object[])'. +``` diff --git a/docs/articles/nunit/release-notes/breaking-changes.md b/docs/articles/nunit/release-notes/breaking-changes.md index d41ca6124..f7c0fc308 100644 --- a/docs/articles/nunit/release-notes/breaking-changes.md +++ b/docs/articles/nunit/release-notes/breaking-changes.md @@ -4,6 +4,16 @@ uid: breakingchanges # Breaking Changes +## NUnit 4.0 + +* The [Classic Asserts](../writing-tests/assertions/assertion-models/classic.md) have been moved to a separate library and their namespace and their class name were renamed to: `NUnit.Framework.Legacy.ClassicAssert`. +* The standalone assert classes have also been moved to the `Legacy` subnamespace. These classes are: + * [CollectionAssert](../writing-tests/assertions/classic-assertions/Collection-Assert.md) + * [StringAssert](../writing-tests/assertions/classic-assertions/String-Assert.md) + * [DirectoryAssert](../writing-tests/assertions/classic-assertions/Directory-Assert.md) + * [FileAssert](../writing-tests/assertions/classic-assertions/File-Assert.md) +* Assert.That overloads with _format_ specification and `params` have been removed in favor of an overload using `FormattableString`. + ## NUnit 3.10 * `NUnit.Framework.Constraints.NUnitEqualityComparer.Default` was deprecated in favor of `new NUnitEqualityComparer()`. diff --git a/docs/images/IDE0002-ClassicAssert-into-Assert.png b/docs/images/IDE0002-ClassicAssert-into-Assert.png new file mode 100644 index 0000000000000000000000000000000000000000..37429a62613ab5b627132322afeef8e4d5b06210 GIT binary patch literal 39328 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 G5&B;o?m2w` literal 0 HcmV?d00001 diff --git a/docs/images/NUnit.Analyzer-ClassicAssert-CodeFix.png b/docs/images/NUnit.Analyzer-ClassicAssert-CodeFix.png new file mode 100644 index 0000000000000000000000000000000000000000..98799337adcfcaf66c816ea3a9cc35f49757624a GIT binary patch literal 50284 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

mt9raY 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 be}3?_ZWrjjR^w6r^zo7ql@+NH()a%liM*s} literal 0 HcmV?d00001 diff --git a/docs/images/NUnit.Analyzer-ReplaceFormatSpecification.png b/docs/images/NUnit.Analyzer-ReplaceFormatSpecification.png new file mode 100644 index 0000000000000000000000000000000000000000..48f894377bc67941f94d2d8e7131d7431a4493d3 GIT binary patch literal 72022 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 Hu0mjfkr|A< literal 0 HcmV?d00001 From a5d781fab86d1264b12008735d6b3ef4cb879aad Mon Sep 17 00:00:00 2001 From: Manfred Brands Date: Sat, 4 Nov 2023 12:48:03 +0800 Subject: [PATCH 02/18] Linting fixes --- .../nunit/release-notes/Nunit4.0-MigrationGuide.md | 14 ++++++++------ .../nunit/release-notes/breaking-changes.md | 2 +- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md b/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md index b693afca6..395f8131c 100644 --- a/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md +++ b/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md @@ -4,7 +4,7 @@ uid: nunit40migrationguide # NUnit 4.0 Migration Guide -NUnit 4.0 has a few [breaking changes](../release-notes/breaking-changes.md#NUnit-40) +NUnit 4.0 has a few [breaking changes](../release-notes/breaking-changes.md#nunit-40) making it neither binary nor source code compatible with NUnit 3.14.0 * Change to [Classic Asserts](../writing-tests/assertions/assertion-models/classic.md) @@ -99,10 +99,12 @@ depending on what version of `nunit` you are compiling with. If you _only_ use classic asserts, you can get away with a couple of global substitutes: -1. Convert `using NUnit.Framework;` into _both_ `using NUnit.Framework;using NUnit.Framework.Legacy;`
-Depending on your editor you can automatically insert a newline between the two `using` statements. -1. Convert `Assert` into `ClassicAssert`.
-This global substitute will also convert those asserts that have not changed. +1. Convert `using NUnit.Framework;` into _both_ `using NUnit.Framework;using NUnit.Framework.Legacy;` + + Depending on your editor you can automatically insert a newline between the two `using` statements. +1. Convert `Assert` into `ClassicAssert`. + + This global substitute will also convert those asserts that have not changed. You can narrow the scope of this substitute to do only the asserts that need converting, but there are quite a lot. 1. Convert `Assert.AreEqual` into `ClassicAssert.AreEqual`. @@ -136,7 +138,7 @@ Note that this doesn't mean you have to target .NET 6.0. This also works if targ ## Assert.That with _format_ specification and `params` overload conversion These overloads were removed to allow for better messages in case of failure. -See [Towards-NUnit4.md](../Towards-NUnit4.md#Improved-Assert-Result-Messages) +See [Towards-NUnit4.md](../Towards-NUnit4.md#improved-assert-result-messages) NUnit4 has been optimized such that these formattable strings only get formatted in case the test is failing. diff --git a/docs/articles/nunit/release-notes/breaking-changes.md b/docs/articles/nunit/release-notes/breaking-changes.md index f7c0fc308..ad2c0b4b9 100644 --- a/docs/articles/nunit/release-notes/breaking-changes.md +++ b/docs/articles/nunit/release-notes/breaking-changes.md @@ -7,7 +7,7 @@ uid: breakingchanges ## NUnit 4.0 * The [Classic Asserts](../writing-tests/assertions/assertion-models/classic.md) have been moved to a separate library and their namespace and their class name were renamed to: `NUnit.Framework.Legacy.ClassicAssert`. -* The standalone assert classes have also been moved to the `Legacy` subnamespace. These classes are: +* The standalone assert classes have also been moved to the `NUnit.Framework.Legacy` namespace. These classes are: * [CollectionAssert](../writing-tests/assertions/classic-assertions/Collection-Assert.md) * [StringAssert](../writing-tests/assertions/classic-assertions/String-Assert.md) * [DirectoryAssert](../writing-tests/assertions/classic-assertions/Directory-Assert.md) From 2f260faac3f235313b151e660018f5b370d2f3d2 Mon Sep 17 00:00:00 2001 From: Manfred Brands Date: Sun, 5 Nov 2023 08:38:10 +0800 Subject: [PATCH 03/18] Remove wrong example of a 3rd party library depending on nunit --- docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md b/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md index 395f8131c..35084c664 100644 --- a/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md +++ b/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md @@ -160,7 +160,7 @@ To make this transition easy, the Nunit.Analyzer has been updated with a new rul ## Using NUnit Extension libraries -If your code doesn't call `nunit` asserts directly but uses a local `NUnitExtension` library or a 3rd party one like [Shoudly](https://github.com/shouldly/shouldly) then that dependency needs to be upgraded _before_ you can upgrade your own code. +If your code doesn't call `nunit` asserts directly but uses a local `NUnitExtension` library or a 3rd party one then that dependency needs to be upgraded _before_ you can upgrade your own code. If the library is not NUnit 4.0 compliant, you will get error messages like: From 749050fd928544d0dfefd0e32dd2bfa1affe5f90 Mon Sep 17 00:00:00 2001 From: Sean Killeen Date: Mon, 6 Nov 2023 22:01:41 +0000 Subject: [PATCH 04/18] Add TOC entry for article --- docs/articles/nunit/release-notes/toc.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/articles/nunit/release-notes/toc.yml b/docs/articles/nunit/release-notes/toc.yml index 9e924e699..c318bcb4b 100644 --- a/docs/articles/nunit/release-notes/toc.yml +++ b/docs/articles/nunit/release-notes/toc.yml @@ -2,6 +2,8 @@ href: framework.md - name: Console and Engine topicUid: consoleenginereleasenotes +- name: NUnit 4.x Migration Guide + topicUid: nunit40migrationguide - name: Breaking Changes topicUid: breakingchanges - name: Pre-3.5 Release notes From 7d2463a64ea784ef6b88cbdac0fadc721210bee5 Mon Sep 17 00:00:00 2001 From: Sean Killeen Date: Mon, 6 Nov 2023 22:03:53 +0000 Subject: [PATCH 05/18] Small phrasing update --- docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md b/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md index 35084c664..787db4689 100644 --- a/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md +++ b/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md @@ -42,7 +42,7 @@ Although the code can be converted manually, that is a lot of work. Luckily, the [NUnit.Analyzer](https://www.nuget.org/packages/NUnit.Analyzers) has had rules and associated code fixes for a while now. Version _3.10.0_ knows about the 2nd non-backward compatible change and will convert the _format_ specification and `params` into a `FormattableString`. -_CAVEAT_: The analyzers only run when the code compiles, so _before_ upgrading `nunit` to version `4.0.0`! +_CAVEAT_: The analyzers only run when the code compiles, so execute and act on the analyzer _before_ upgrading `nunit` to version `4.0.0`! In our example code, the analyzer will flag the `Assert.AreEqual` as shown below: ![NUnit.Analyzer Classic Assert Warning](~/images/NUnit.Analyzer-ClassicAssert-Warning.png) From 6a7e8a93cee7237979a1e688e93c224fba3e8d5f Mon Sep 17 00:00:00 2001 From: Sean Killeen Date: Mon, 6 Nov 2023 22:04:36 +0000 Subject: [PATCH 06/18] Change to note formatting --- docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md b/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md index 787db4689..1017a9071 100644 --- a/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md +++ b/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md @@ -42,7 +42,8 @@ Although the code can be converted manually, that is a lot of work. Luckily, the [NUnit.Analyzer](https://www.nuget.org/packages/NUnit.Analyzers) has had rules and associated code fixes for a while now. Version _3.10.0_ knows about the 2nd non-backward compatible change and will convert the _format_ specification and `params` into a `FormattableString`. -_CAVEAT_: The analyzers only run when the code compiles, so execute and act on the analyzer _before_ upgrading `nunit` to version `4.0.0`! +> [!NOTE] +> **Caveat**: The analyzers only run when the code compiles, so execute and act on the analyzer _before_ upgrading `nunit` to version `4.0.0`! In our example code, the analyzer will flag the `Assert.AreEqual` as shown below: ![NUnit.Analyzer Classic Assert Warning](~/images/NUnit.Analyzer-ClassicAssert-Warning.png) From 08e7a8a4e7fadd826642ab32ead2a11b126db75e Mon Sep 17 00:00:00 2001 From: Sean Killeen Date: Mon, 6 Nov 2023 22:05:04 +0000 Subject: [PATCH 07/18] minor word change --- docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md b/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md index 1017a9071..3593a3782 100644 --- a/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md +++ b/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md @@ -80,7 +80,7 @@ string actualText = actual.ToString(); StringAssert.StartsWith("42", actualText, "Expected '{0}' to start with '42'", actualText); ``` -Will get converted into: +Will be converted into: ```csharp string actualText = actual.ToString(); From b6759eb21fec82e767b685b384fb5b1b08c0fe8f Mon Sep 17 00:00:00 2001 From: Sean Killeen Date: Mon, 6 Nov 2023 22:05:20 +0000 Subject: [PATCH 08/18] Fix typo --- docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md b/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md index 3593a3782..5d8f245c6 100644 --- a/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md +++ b/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md @@ -88,7 +88,7 @@ Assert.That(actualText, Does.StartWith("42"), $"Expected '{actualText}' to start ``` There are no code fixers for `FileAssert` and `DirectoryAssert`. -They could be added, but we don't expect these to be used to much. +They could be added, but we don't expect these to be used too much. ### Convert Classic Assert into NUnit4 equivalent From 0e484539900748b2d252283d2a58e529613cf7b8 Mon Sep 17 00:00:00 2001 From: Sean Killeen Date: Mon, 6 Nov 2023 22:05:52 +0000 Subject: [PATCH 09/18] minor formatting --- docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md b/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md index 5d8f245c6..cb2222919 100644 --- a/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md +++ b/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md @@ -92,8 +92,8 @@ They could be added, but we don't expect these to be used too much. ### Convert Classic Assert into NUnit4 equivalent -If you want to keep the Classic Asserts and not convert them to the constraint model, -but do want to use the new NUnit4 naming you need to update the code manually. +If you want to keep the Classic Asserts and not convert them to the constraint model -- +but do want to use the new NUnit4 naming -- you'll need to update the code manually. The NUnit.Analyzer can't help here as the code either doesn't compile before the change or after, depending on what version of `nunit` you are compiling with. From 6f6d083886d93c512bd5a89d1b4427c8060e6ea9 Mon Sep 17 00:00:00 2001 From: Sean Killeen Date: Tue, 7 Nov 2023 02:20:22 +0000 Subject: [PATCH 10/18] NUnit4 -> NUnit 4.x --- .../articles/nunit/release-notes/Nunit4.0-MigrationGuide.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md b/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md index cb2222919..ef691f101 100644 --- a/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md +++ b/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md @@ -90,10 +90,10 @@ Assert.That(actualText, Does.StartWith("42"), $"Expected '{actualText}' to start There are no code fixers for `FileAssert` and `DirectoryAssert`. They could be added, but we don't expect these to be used too much. -### Convert Classic Assert into NUnit4 equivalent +### Convert Classic Assert into NUnit 4.x equivalent If you want to keep the Classic Asserts and not convert them to the constraint model -- -but do want to use the new NUnit4 naming -- you'll need to update the code manually. +but do want to use the new NUnit 4.x naming -- you'll need to update the code manually. The NUnit.Analyzer can't help here as the code either doesn't compile before the change or after, depending on what version of `nunit` you are compiling with. @@ -141,7 +141,7 @@ Note that this doesn't mean you have to target .NET 6.0. This also works if targ These overloads were removed to allow for better messages in case of failure. See [Towards-NUnit4.md](../Towards-NUnit4.md#improved-assert-result-messages) -NUnit4 has been optimized such that these formattable strings only get formatted in case the test is failing. +NUnit 4.x has been optimized such that these formattable strings only get formatted in case the test is failing. ```csharp int actual = SomeCalculation(); From e38698f00d8b6470f3f8e618fe73680c55090584 Mon Sep 17 00:00:00 2001 From: Sean Killeen Date: Tue, 7 Nov 2023 02:21:14 +0000 Subject: [PATCH 11/18] Update link name. --- docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md b/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md index ef691f101..d5909e900 100644 --- a/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md +++ b/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md @@ -138,8 +138,7 @@ Note that this doesn't mean you have to target .NET 6.0. This also works if targ ## Assert.That with _format_ specification and `params` overload conversion -These overloads were removed to allow for better messages in case of failure. -See [Towards-NUnit4.md](../Towards-NUnit4.md#improved-assert-result-messages) +These overloads were removed to allow for better messages in case of failure. See [The "Towards NUnit 4" article](../Towards-NUnit4.md#improved-assert-result-messages) for more information. NUnit 4.x has been optimized such that these formattable strings only get formatted in case the test is failing. From 349f1a774e857ccd82cf4b38a723652b3cf9e7aa Mon Sep 17 00:00:00 2001 From: Sean Killeen Date: Tue, 7 Nov 2023 02:22:16 +0000 Subject: [PATCH 12/18] Minor word choice --- docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md b/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md index d5909e900..9dc12c258 100644 --- a/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md +++ b/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md @@ -154,7 +154,7 @@ int actual = SomeCalculation(); Assert.That(actual, Is.EqualTo(42), $"Expected {actual} to be 42"); ``` -To make this transition easy, the Nunit.Analyzer has been updated with a new rule and corresponding code-fix: +To make this transition easier, the Nunit.Analyzer has been updated with a new rule and corresponding code-fix: ![Replace Format Specification with Formattable String](~/images/NUnit.Analyzer-ReplaceFormatSpecification.png) From d5917313c44110a330944216245360d34024cf0f Mon Sep 17 00:00:00 2001 From: Sean Killeen Date: Tue, 7 Nov 2023 02:42:25 +0000 Subject: [PATCH 13/18] Add space --- docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md b/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md index 9dc12c258..b7a780a63 100644 --- a/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md +++ b/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md @@ -46,7 +46,8 @@ Version _3.10.0_ knows about the 2nd non-backward compatible change and will con > **Caveat**: The analyzers only run when the code compiles, so execute and act on the analyzer _before_ upgrading `nunit` to version `4.0.0`! In our example code, the analyzer will flag the `Assert.AreEqual` as shown below: -![NUnit.Analyzer Classic Assert Warning](~/images/NUnit.Analyzer-ClassicAssert-Warning.png) + +![NUnit.Analyzer Classic Assert Warning](../../../images/NUnit.Analyzer-ClassicAssert-Warning.png) Running the associated `Transform to constraint model` code fix in Visual Studio will convert the code into: From 06778b139ac1f45bb40cc05f7d1a1f3fecb28d04 Mon Sep 17 00:00:00 2001 From: Sean Killeen Date: Tue, 7 Nov 2023 02:44:46 +0000 Subject: [PATCH 14/18] Update other image paths --- .../articles/nunit/release-notes/Nunit4.0-MigrationGuide.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md b/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md index b7a780a63..9bb877a94 100644 --- a/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md +++ b/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md @@ -67,7 +67,7 @@ public class Tests The analyzer code fix supports _Batch Fixing_: -![NUnit.Analyzer Classic Assert CodeFix](~/images/NUnit.Analyzer-ClassicAssert-CodeFix.png) +![NUnit.Analyzer Classic Assert CodeFix](../../../images/NUnit.Analyzer-ClassicAssert-CodeFix.png) This allows changing all corresponding `Assert` usages for a document, project or a complete solution. @@ -121,7 +121,7 @@ You can narrow the scope of this substitute to do only the asserts that need con Or if you use Visual Studio, it will raise an [IDE0002](https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0002) with a code fix that can convert all of those that are not considered _classic_ back to assert in one swoop: - ![ClassicAssert to Assert](~/images/IDE0002-ClassicAssert-into-Assert.png) + ![ClassicAssert to Assert](../../../images/IDE0002-ClassicAssert-into-Assert.png) ### Use `global using` aliases @@ -157,7 +157,7 @@ Assert.That(actual, Is.EqualTo(42), $"Expected {actual} to be 42"); To make this transition easier, the Nunit.Analyzer has been updated with a new rule and corresponding code-fix: -![Replace Format Specification with Formattable String](~/images/NUnit.Analyzer-ReplaceFormatSpecification.png) +![Replace Format Specification with Formattable String](../../../images/NUnit.Analyzer-ReplaceFormatSpecification.png) ## Using NUnit Extension libraries From 1ead005836e6555ed989f4e7e5ca6932dcb5a863 Mon Sep 17 00:00:00 2001 From: Sean Killeen Date: Tue, 7 Nov 2023 03:00:27 +0000 Subject: [PATCH 15/18] Turn into non-version-specific migration guide --- .../release-notes/Nunit4.0-MigrationGuide.md | 18 ++++++++++-------- docs/articles/nunit/release-notes/toc.yml | 4 ++-- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md b/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md index 9bb877a94..72f54eb8f 100644 --- a/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md +++ b/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md @@ -1,8 +1,10 @@ --- -uid: nunit40migrationguide +uid: migrationguidance --- -# NUnit 4.0 Migration Guide +# Migration Guidance + +## 3.x -> 4.x NUnit 4.0 has a few [breaking changes](../release-notes/breaking-changes.md#nunit-40) making it neither binary nor source code compatible with NUnit 3.14.0 @@ -10,7 +12,7 @@ making it neither binary nor source code compatible with NUnit 3.14.0 * Change to [Classic Asserts](../writing-tests/assertions/assertion-models/classic.md) * Removal of `Assert.That` overloads with _format_ specification and `params`. -## Classic Assert migration +### Classic Assert migration There are different ways to migrate these to NUnit 4.0 @@ -35,7 +37,7 @@ public class Tests } ``` -### Convert Classic Assert to Constraint Model +#### Convert Classic Assert to Constraint Model Although the code can be converted manually, that is a lot of work. @@ -91,7 +93,7 @@ Assert.That(actualText, Does.StartWith("42"), $"Expected '{actualText}' to start There are no code fixers for `FileAssert` and `DirectoryAssert`. They could be added, but we don't expect these to be used too much. -### Convert Classic Assert into NUnit 4.x equivalent +#### Convert Classic Assert into NUnit 4.x equivalent If you want to keep the Classic Asserts and not convert them to the constraint model -- but do want to use the new NUnit 4.x naming -- you'll need to update the code manually. @@ -123,7 +125,7 @@ You can narrow the scope of this substitute to do only the asserts that need con ![ClassicAssert to Assert](../../../images/IDE0002-ClassicAssert-into-Assert.png) -### Use `global using` aliases +#### Use `global using` aliases If you use SDK 6.0 or newer that supports C#10, you can upgrade without modifying any actual tests by adding the following aliases to `GlobalUsings.cs` @@ -137,7 +139,7 @@ global using FileAssert = NUnit.Framework.Legacy.FileAssert; Note that this doesn't mean you have to target .NET 6.0. This also works if targeting .NET Framework as it is purely done on the source code level. -## Assert.That with _format_ specification and `params` overload conversion +### Assert.That with _format_ specification and `params` overload conversion These overloads were removed to allow for better messages in case of failure. See [The "Towards NUnit 4" article](../Towards-NUnit4.md#improved-assert-result-messages) for more information. @@ -159,7 +161,7 @@ To make this transition easier, the Nunit.Analyzer has been updated with a new r ![Replace Format Specification with Formattable String](../../../images/NUnit.Analyzer-ReplaceFormatSpecification.png) -## Using NUnit Extension libraries +### Using NUnit Extension libraries If your code doesn't call `nunit` asserts directly but uses a local `NUnitExtension` library or a 3rd party one then that dependency needs to be upgraded _before_ you can upgrade your own code. diff --git a/docs/articles/nunit/release-notes/toc.yml b/docs/articles/nunit/release-notes/toc.yml index c318bcb4b..b5f1190ef 100644 --- a/docs/articles/nunit/release-notes/toc.yml +++ b/docs/articles/nunit/release-notes/toc.yml @@ -2,8 +2,8 @@ href: framework.md - name: Console and Engine topicUid: consoleenginereleasenotes -- name: NUnit 4.x Migration Guide - topicUid: nunit40migrationguide +- name: Migration Guidance + topicUid: migrationguidance - name: Breaking Changes topicUid: breakingchanges - name: Pre-3.5 Release notes From fe7b383cc60a7d68713853f8cd071425e5109929 Mon Sep 17 00:00:00 2001 From: Sean Killeen Date: Tue, 7 Nov 2023 03:00:34 +0000 Subject: [PATCH 16/18] Add link in NUnit 4 article --- docs/articles/nunit/Towards-NUnit4.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/docs/articles/nunit/Towards-NUnit4.md b/docs/articles/nunit/Towards-NUnit4.md index a20f6ca95..13b4778ea 100644 --- a/docs/articles/nunit/Towards-NUnit4.md +++ b/docs/articles/nunit/Towards-NUnit4.md @@ -6,7 +6,12 @@ uid: towardsnunit4 NUnit 4 has been long-awaited, and we are now starting to see its outline taking shape. With the introduction of NUnit 4, we are also making changes to the release cadence, shifting towards a [Semver](https://semver.org) based versioning scheme. This entails aiming to release version 4 as soon as possible and subsequently accelerating the pace of new major releases compared to previous versions. -We'd like to bring your attention to several interesting aspects of NUnit 4. First and foremost, there is a crucial [NUnit 4 planning issue](https://github.com/nunit/nunit/issues/3325) that we want to highlight. Additionally, we have an upcoming [release notes page](https://github.com/nunit/docs/blob/62c43cbbd32b8424c974d5ec50d5463a5c4cd621/docs/articles/nunit/release-notes/framework.md), currently in the form of a PR (Pull Request). If you're interested in changes related to supported frameworks and assert messages, we've compiled a [list of issues](https://github.com/nunit/nunit/issues/4431) for your reference. +We'd like to bring your attention to several interesting aspects of NUnit 4. + +* First and foremost, there is a crucial [NUnit 4 planning issue](https://github.com/nunit/nunit/issues/3325) that we want to highlight. +* Additionally, we have an upcoming [release notes page](https://github.com/nunit/docs/blob/62c43cbbd32b8424c974d5ec50d5463a5c4cd621/docs/articles/nunit/release-notes/framework.md), currently in the form of a PR (Pull Request). +* If you're interested in changes related to supported frameworks and assert messages, we've compiled a [list of issues](https://github.com/nunit/nunit/issues/4431) for your reference. +* We have also created a [Migration Guide](xref:migrationguidance) starting with 4.x that we hope will assist in navigating any breaking changes. Moreover, we have created a milestone for version 4, [which you can find a list of open issues for here](https://github.com/nunit/nunit/issues?q=is%3Aopen+is%3Aissue+milestone%3A4.0). This milestone could be useful in tracking the progress and development of version 4. From 3ceeab9b37074774eb005e14adc6271b425208c5 Mon Sep 17 00:00:00 2001 From: Sean Killeen Date: Tue, 7 Nov 2023 04:42:00 +0000 Subject: [PATCH 17/18] formatting updates --- .../release-notes/Nunit4.0-MigrationGuide.md | 53 +++++++++++-------- .../nunit/release-notes/breaking-changes.md | 6 ++- 2 files changed, 35 insertions(+), 24 deletions(-) diff --git a/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md b/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md index 72f54eb8f..864968041 100644 --- a/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md +++ b/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md @@ -6,8 +6,8 @@ uid: migrationguidance ## 3.x -> 4.x -NUnit 4.0 has a few [breaking changes](../release-notes/breaking-changes.md#nunit-40) -making it neither binary nor source code compatible with NUnit 3.14.0 +NUnit 4.0 has a few [breaking changes](../release-notes/breaking-changes.md#nunit-40) making it neither binary nor +source code compatible with NUnit 3.14.0 * Change to [Classic Asserts](../writing-tests/assertions/assertion-models/classic.md) * Removal of `Assert.That` overloads with _format_ specification and `params`. @@ -41,11 +41,12 @@ public class Tests Although the code can be converted manually, that is a lot of work. -Luckily, the [NUnit.Analyzer](https://www.nuget.org/packages/NUnit.Analyzers) has had rules and associated code fixes for a while now. -Version _3.10.0_ knows about the 2nd non-backward compatible change and will convert the _format_ specification and `params` into a `FormattableString`. +Luckily, the [NUnit.Analyzer](https://www.nuget.org/packages/NUnit.Analyzers) has had rules and associated code fixes +for a while now. Version _3.10.0_ knows about the 2nd non-backward compatible change and will convert the _format_ +specification and `params` into a `FormattableString`. -> [!NOTE] -> **Caveat**: The analyzers only run when the code compiles, so execute and act on the analyzer _before_ upgrading `nunit` to version `4.0.0`! +> [!NOTE] **Caveat**: The analyzers only run when the code compiles, so execute and act on the analyzer _before_ +> upgrading `nunit` to version `4.0.0`! In our example code, the analyzer will flag the `Assert.AreEqual` as shown below: @@ -73,8 +74,9 @@ The analyzer code fix supports _Batch Fixing_: This allows changing all corresponding `Assert` usages for a document, project or a complete solution. -There are many classic asserts and most of these come with a separate code analyzer rule and code fix. -Although it allows full configuration to what classic asserts to keep or convert, it means that a developer has to repeat this process multiple times, once for each assert method. +There are many classic asserts and most of these come with a separate code analyzer rule and code fix. Although it +allows full configuration to what classic asserts to keep or convert, it means that a developer has to repeat this +process multiple times, once for each assert method. NUnit.Analyzer also has code fixers for `CollectionAssert` and `StringAssert`. @@ -90,16 +92,16 @@ string actualText = actual.ToString(); Assert.That(actualText, Does.StartWith("42"), $"Expected '{actualText}' to start with '42'"); ``` -There are no code fixers for `FileAssert` and `DirectoryAssert`. -They could be added, but we don't expect these to be used too much. +There are no code fixers for `FileAssert` and `DirectoryAssert`. They could be added, but we don't expect these to be +used too much. #### Convert Classic Assert into NUnit 4.x equivalent -If you want to keep the Classic Asserts and not convert them to the constraint model -- -but do want to use the new NUnit 4.x naming -- you'll need to update the code manually. +If you want to keep the Classic Asserts and not convert them to the constraint model -- but do want to use the new NUnit +4.x naming -- you'll need to update the code manually. -The NUnit.Analyzer can't help here as the code either doesn't compile before the change or after, -depending on what version of `nunit` you are compiling with. +The NUnit.Analyzer can't help here as the code either doesn't compile before the change or after, depending on what +version of `nunit` you are compiling with. If you _only_ use classic asserts, you can get away with a couple of global substitutes: @@ -108,26 +110,30 @@ If you _only_ use classic asserts, you can get away with a couple of global subs Depending on your editor you can automatically insert a newline between the two `using` statements. 1. Convert `Assert` into `ClassicAssert`. - This global substitute will also convert those asserts that have not changed. -You can narrow the scope of this substitute to do only the asserts that need converting, but there are quite a lot. + This global substitute will also convert those asserts that have not changed. You can narrow the scope of this +substitute to do only the asserts that need converting, but there are quite a lot. 1. Convert `Assert.AreEqual` into `ClassicAssert.AreEqual`. 1. Convert `Assert.True` into `ClassicAssert.True`. 1. Similar for `IsTrue`, `False`, `IsFalse`, `Greater`, `Less`, ... - Depending on what is less work, alternatively you can reverse the substitution of those that shouldn't be have been changed: + Depending on what is less work, alternatively you can reverse the substitution of those that shouldn't be have been + changed: 1. Convert `ClassicAssert.That` into `Assert.That`. 1. Convert `ClassicAssert.Fail` into `Assert.Fail`. 1. Convert `ClassicAssert.Throws` into `Assert.Throws`. 1. Etc. - Or if you use Visual Studio, it will raise an [IDE0002](https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0002) with a code fix that can convert all of those that are not considered _classic_ back to assert in one swoop: + Or if you use Visual Studio, it will raise an + [IDE0002](https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0002) with a code fix + that can convert all of those that are not considered _classic_ back to assert in one swoop: ![ClassicAssert to Assert](../../../images/IDE0002-ClassicAssert-into-Assert.png) #### Use `global using` aliases -If you use SDK 6.0 or newer that supports C#10, you can upgrade without modifying any actual tests by adding the following aliases to `GlobalUsings.cs` +If you use SDK 6.0 or newer that supports C#10, you can upgrade without modifying any actual tests by adding the +following aliases to `GlobalUsings.cs` ```csharp global using Assert = NUnit.Framework.Legacy.ClassicAssert; @@ -137,11 +143,13 @@ global using DirectoryAssert = NUnit.Framework.Legacy.DirectoryAssert; global using FileAssert = NUnit.Framework.Legacy.FileAssert; ``` -Note that this doesn't mean you have to target .NET 6.0. This also works if targeting .NET Framework as it is purely done on the source code level. +Note that this doesn't mean you have to target .NET 6.0. This also works if targeting .NET Framework as it is purely +done on the source code level. ### Assert.That with _format_ specification and `params` overload conversion -These overloads were removed to allow for better messages in case of failure. See [The "Towards NUnit 4" article](../Towards-NUnit4.md#improved-assert-result-messages) for more information. +These overloads were removed to allow for better messages in case of failure. See [The "Towards NUnit 4" +article](../Towards-NUnit4.md#improved-assert-result-messages) for more information. NUnit 4.x has been optimized such that these formattable strings only get formatted in case the test is failing. @@ -163,7 +171,8 @@ To make this transition easier, the Nunit.Analyzer has been updated with a new r ### Using NUnit Extension libraries -If your code doesn't call `nunit` asserts directly but uses a local `NUnitExtension` library or a 3rd party one then that dependency needs to be upgraded _before_ you can upgrade your own code. +If your code doesn't call `nunit` asserts directly but uses a local `NUnitExtension` library or a 3rd party one then +that dependency needs to be upgraded _before_ you can upgrade your own code. If the library is not NUnit 4.0 compliant, you will get error messages like: diff --git a/docs/articles/nunit/release-notes/breaking-changes.md b/docs/articles/nunit/release-notes/breaking-changes.md index f7fa8b90f..e620436e7 100644 --- a/docs/articles/nunit/release-notes/breaking-changes.md +++ b/docs/articles/nunit/release-notes/breaking-changes.md @@ -6,13 +6,15 @@ uid: breakingchanges ## NUnit 4.0 -* The [Classic Asserts](../writing-tests/assertions/assertion-models/classic.md) have been moved to a separate library and their namespace and their class name were renamed to: `NUnit.Framework.Legacy.ClassicAssert`. +* The [Classic Asserts](../writing-tests/assertions/assertion-models/classic.md) have been moved to a separate library + and their namespace and their class name were renamed to: `NUnit.Framework.Legacy.ClassicAssert`. * The standalone assert classes have also been moved to the `NUnit.Framework.Legacy` namespace. These classes are: * [CollectionAssert](../writing-tests/assertions/classic-assertions/Collection-Assert.md) * [StringAssert](../writing-tests/assertions/classic-assertions/String-Assert.md) * [DirectoryAssert](../writing-tests/assertions/classic-assertions/Directory-Assert.md) * [FileAssert](../writing-tests/assertions/classic-assertions/File-Assert.md) -* Assert.That overloads with _format_ specification and `params` have been removed in favor of an overload using `FormattableString`. +* Assert.That overloads with _format_ specification and `params` have been removed in favor of an overload using + `FormattableString`. ## NUnit 3.10 From edbe3334af7adeaa5d64b52701592bb27cb52391 Mon Sep 17 00:00:00 2001 From: Sean Killeen Date: Tue, 7 Nov 2023 04:55:50 +0000 Subject: [PATCH 18/18] Fix note formatting --- docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md b/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md index 864968041..5ef1284cc 100644 --- a/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md +++ b/docs/articles/nunit/release-notes/Nunit4.0-MigrationGuide.md @@ -45,7 +45,8 @@ Luckily, the [NUnit.Analyzer](https://www.nuget.org/packages/NUnit.Analyzers) ha for a while now. Version _3.10.0_ knows about the 2nd non-backward compatible change and will convert the _format_ specification and `params` into a `FormattableString`. -> [!NOTE] **Caveat**: The analyzers only run when the code compiles, so execute and act on the analyzer _before_ +> [!NOTE] +> **Caveat**: The analyzers only run when the code compiles, so execute and act on the analyzer _before_ > upgrading `nunit` to version `4.0.0`! In our example code, the analyzer will flag the `Assert.AreEqual` as shown below: