diff --git a/articles/nunit-analyzers/NUnit-Analyzers.html b/articles/nunit-analyzers/NUnit-Analyzers.html index a844f0d21..073ce94a5 100644 --- a/articles/nunit-analyzers/NUnit-Analyzers.html +++ b/articles/nunit-analyzers/NUnit-Analyzers.html @@ -212,7 +212,7 @@

Structure Rules (NUnit1001 - )

NUnit1015 -The source type does not implement IEnumerable +The source type does not implement I(Async)Enumerable ✅ ❗ ❌ @@ -240,7 +240,7 @@

Structure Rules (NUnit1001 - )

NUnit1019 -The source specified by the TestCaseSource does not return an IEnumerable or a type that implements IEnumerable +The source specified by the TestCaseSource does not return an I(Async)Enumerable or a type that implements I(Async)Enumerable ✅ ❗ ❌ @@ -275,7 +275,7 @@

Structure Rules (NUnit1001 - )

NUnit1024 -The source specified by the ValueSource does not return an IEnumerable or a type that implements IEnumerable +The source specified by the ValueSource does not return an I(Async)Enumerable or a type that implements I(Async)Enumerable ✅ ❗ ❌ @@ -353,42 +353,42 @@

Assertion Rules (NUnit2001 - )

NUnit2001 -Consider using Assert.That(expr, Is.False) instead of Assert.False(expr) +Consider using Assert.That(expr, Is.False) instead of ClassicAssert.False(expr) ✅ ℹ️ ✅ NUnit2002 -Consider using Assert.That(expr, Is.False) instead of Assert.IsFalse(expr) +Consider using Assert.That(expr, Is.False) instead of ClassicAssert.IsFalse(expr) ✅ ℹ️ ✅ NUnit2003 -Consider using Assert.That(expr, Is.True) instead of Assert.IsTrue(expr) +Consider using Assert.That(expr, Is.True) instead of ClassicAssert.IsTrue(expr) ✅ ℹ️ ✅ NUnit2004 -Consider using Assert.That(expr, Is.True) instead of Assert.True(expr) +Consider using Assert.That(expr, Is.True) instead of ClassicAssert.True(expr) ✅ ℹ️ ✅ NUnit2005 -Consider using Assert.That(actual, Is.EqualTo(expected)) instead of Assert.AreEqual(expected, actual) +Consider using Assert.That(actual, Is.EqualTo(expected)) instead of ClassicAssert.AreEqual(expected, actual) ✅ ⚠️ ✅ NUnit2006 -Consider using Assert.That(actual, Is.Not.EqualTo(expected)) instead of Assert.AreNotEqual(expected, actual) +Consider using Assert.That(actual, Is.Not.EqualTo(expected)) instead of ClassicAssert.AreNotEqual(expected, actual) ✅ ⚠️ ✅ @@ -451,35 +451,35 @@

Assertion Rules (NUnit2001 - )

NUnit2015 -Consider using Assert.That(actual, Is.SameAs(expected)) instead of Assert.AreSame(expected, actual) +Consider using Assert.That(actual, Is.SameAs(expected)) instead of ClassicAssert.AreSame(expected, actual) ✅ ⚠️ ✅ NUnit2016 -Consider using Assert.That(expr, Is.Null) instead of Assert.Null(expr) +Consider using Assert.That(expr, Is.Null) instead of ClassicAssert.Null(expr) ✅ ℹ️ ✅ NUnit2017 -Consider using Assert.That(expr, Is.Null) instead of Assert.IsNull(expr) +Consider using Assert.That(expr, Is.Null) instead of ClassicAssert.IsNull(expr) ✅ ℹ️ ✅ NUnit2018 -Consider using Assert.That(expr, Is.Not.Null) instead of Assert.NotNull(expr) +Consider using Assert.That(expr, Is.Not.Null) instead of ClassicAssert.NotNull(expr) ✅ ℹ️ ✅ NUnit2019 -Consider using Assert.That(expr, Is.Not.Null) instead of Assert.IsNotNull(expr) +Consider using Assert.That(expr, Is.Not.Null) instead of ClassicAssert.IsNotNull(expr) ✅ ℹ️ ✅ @@ -522,8 +522,8 @@

Assertion Rules (NUnit2001 - )

NUnit2025 Wrong actual type used with ContainsConstraint -✅ -❗ +❌ +💭 ❌ @@ -535,91 +535,91 @@

Assertion Rules (NUnit2001 - )

NUnit2027 -Consider using Assert.That(actual, Is.GreaterThan(expected)) instead of Assert.Greater(actual, expected) +Consider using Assert.That(actual, Is.GreaterThan(expected)) instead of ClassicAssert.Greater(actual, expected) ✅ ℹ️ ✅ NUnit2028 -Consider using Assert.That(actual, Is.GreaterThanOrEqualTo(expected)) instead of Assert.GreaterOrEqual(actual, expected) +Consider using Assert.That(actual, Is.GreaterThanOrEqualTo(expected)) instead of ClassicAssert.GreaterOrEqual(actual, expected) ✅ ℹ️ ✅ NUnit2029 -Consider using Assert.That(actual, Is.LessThan(expected)) instead of Assert.Less(actual, expected) +Consider using Assert.That(actual, Is.LessThan(expected)) instead of ClassicAssert.Less(actual, expected) ✅ ℹ️ ✅ NUnit2030 -Consider using Assert.That(actual, Is.LessThanOrEqualTo(expected)) instead of Assert.LessOrEqual(actual, expected) +Consider using Assert.That(actual, Is.LessThanOrEqualTo(expected)) instead of ClassicAssert.LessOrEqual(actual, expected) ✅ ℹ️ ✅ NUnit2031 -Consider using Assert.That(actual, Is.Not.SameAs(expected)) instead of Assert.AreNotSame(expected, actual) +Consider using Assert.That(actual, Is.Not.SameAs(expected)) instead of ClassicAssert.AreNotSame(expected, actual) ✅ ⚠️ ✅ NUnit2032 -Consider using Assert.That(expr, Is.Zero) instead of Assert.Zero(expr) +Consider using Assert.That(expr, Is.Zero) instead of ClassicAssert.Zero(expr) ✅ ℹ️ ✅ NUnit2033 -Consider using Assert.That(expr, Is.Not.Zero) instead of Assert.NotZero(expr) +Consider using Assert.That(expr, Is.Not.Zero) instead of ClassicAssert.NotZero(expr) ✅ ℹ️ ✅ NUnit2034 -Consider using Assert.That(expr, Is.NaN) instead of Assert.IsNaN(expr) +Consider using Assert.That(expr, Is.NaN) instead of ClassicAssert.IsNaN(expr) ✅ ℹ️ ✅ NUnit2035 -Consider using Assert.That(collection, Is.Empty) instead of Assert.IsEmpty(collection) +Consider using Assert.That(collection, Is.Empty) instead of ClassicAssert.IsEmpty(collection) ✅ ℹ️ ✅ NUnit2036 -Consider using Assert.That(collection, Is.Not.Empty) instead of Assert.IsNotEmpty(collection) +Consider using Assert.That(collection, Is.Not.Empty) instead of ClassicAssert.IsNotEmpty(collection) ✅ ℹ️ ✅ NUnit2037 -Consider using Assert.That(collection, Does.Contain(instance)) instead of Assert.Contains(instance, collection) +Consider using Assert.That(collection, Does.Contain(instance)) instead of ClassicAssert.Contains(instance, collection) ✅ ℹ️ ✅ NUnit2038 -Consider using Assert.That(actual, Is.InstanceOf(expected)) instead of Assert.IsInstanceOf(expected, actual) +Consider using Assert.That(actual, Is.InstanceOf(expected)) instead of ClassicAssert.IsInstanceOf(expected, actual) ✅ ℹ️ ✅ NUnit2039 -Consider using Assert.That(actual, Is.Not.InstanceOf(expected)) instead of Assert.IsNotInstanceOf(expected, actual) +Consider using Assert.That(actual, Is.Not.InstanceOf(expected)) instead of ClassicAssert.IsNotInstanceOf(expected, actual) ✅ ℹ️ ✅ @@ -680,11 +680,32 @@

Assertion Rules (NUnit2001 - )

⚠️ ✅ + +NUnit2048 +Consider using Assert.That(...) instead of StringAssert(...) +✅ +⚠️ +✅ + + +NUnit2049 +Consider using Assert.That(...) instead of CollectionAssert(...) +✅ +⚠️ +✅ + + +NUnit2050 +NUnit 4 no longer supports string.Format specification +✅ +❗ +✅ +

Suppressor Rules (NUnit3001 - )

Rules which suppress compiler errors based on context. Note that these rules are only available in the .NET Standard 2.0 -builds (version 3.0.0 and above) which require Visual Studio 2019.

+builds (version 3.0.0 and above) which require Visual Studio 2019 (version 16.3) or newer.

@@ -698,7 +719,7 @@

Suppressor Rules (NUnit3001 - )

- + diff --git a/articles/nunit-analyzers/NUnit1001.html b/articles/nunit-analyzers/NUnit1001.html index b4993231b..69dc5221e 100644 --- a/articles/nunit-analyzers/NUnit1001.html +++ b/articles/nunit-analyzers/NUnit1001.html @@ -113,7 +113,7 @@

Code -

+
NUnit3001Expression was checked in an Assert.NotNull, Assert.IsNotNull or Assert.That callExpression was checked in an ClassicAssert.NotNull, ClassicAssert.IsNotNull or Assert.That call ℹ️ TestCaseUsageAnalyzerTestCaseUsageAnalyzer
diff --git a/articles/nunit-analyzers/NUnit1002.html b/articles/nunit-analyzers/NUnit1002.html index 7ed6a397d..3c3d7bff0 100644 --- a/articles/nunit-analyzers/NUnit1002.html +++ b/articles/nunit-analyzers/NUnit1002.html @@ -113,7 +113,7 @@

The Tes Code -TestCaseSourceUsesStringAnalyzer +TestCaseSourceUsesStringAnalyzer diff --git a/articles/nunit-analyzers/NUnit1003.html b/articles/nunit-analyzers/NUnit1003.html index 7c853a4fe..fac01f845 100644 --- a/articles/nunit-analyzers/NUnit1003.html +++ b/articles/nunit-analyzers/NUnit1003.html @@ -113,7 +113,7 @@

The TestCaseAttribute Code -TestCaseUsageAnalyzer +TestCaseUsageAnalyzer diff --git a/articles/nunit-analyzers/NUnit1004.html b/articles/nunit-analyzers/NUnit1004.html index 8222b52cc..184d18d35 100644 --- a/articles/nunit-analyzers/NUnit1004.html +++ b/articles/nunit-analyzers/NUnit1004.html @@ -113,7 +113,7 @@

The TestCaseAttribute Code -TestCaseUsageAnalyzer +TestCaseUsageAnalyzer diff --git a/articles/nunit-analyzers/NUnit1005.html b/articles/nunit-analyzers/NUnit1005.html index 76551d550..083c41cfb 100644 --- a/articles/nunit-analyzers/NUnit1005.html +++ b/articles/nunit-analyzers/NUnit1005.html @@ -113,7 +113,7 @@

Code -TestMethodUsageAnalyzer +TestMethodUsageAnalyzer diff --git a/articles/nunit-analyzers/NUnit1006.html b/articles/nunit-analyzers/NUnit1006.html index e08198913..719bf07fe 100644 --- a/articles/nunit-analyzers/NUnit1006.html +++ b/articles/nunit-analyzers/NUnit1006.html @@ -113,7 +113,7 @@

Expec Code -TestMethodUsageAnalyzer +TestMethodUsageAnalyzer diff --git a/articles/nunit-analyzers/NUnit1007.html b/articles/nunit-analyzers/NUnit1007.html index aaeb900e9..5bc24e40f 100644 --- a/articles/nunit-analyzers/NUnit1007.html +++ b/articles/nunit-analyzers/NUnit1007.html @@ -113,7 +113,7 @@

Code -TestMethodUsageAnalyzer +TestMethodUsageAnalyzer diff --git a/articles/nunit-analyzers/NUnit1008.html b/articles/nunit-analyzers/NUnit1008.html index 3d562d476..58edfa7e0 100644 --- a/articles/nunit-analyzers/NUnit1008.html +++ b/articles/nunit-analyzers/NUnit1008.html @@ -113,7 +113,7 @@

Specifying Code -ParallelizableUsageAnalyzer +ParallelizableUsageAnalyzer @@ -128,7 +128,8 @@

Example Violation

[assembly: Parallelizable(ParallelScope.Self)]
 

Explanation

-

ParallelScope.Self only applies to classes and methods, not to assemblies.

+

ParallelScope.Self only applies to classes and methods, +not to assemblies.

Fix

Either remove it or change to a valid option, such as:

[assembly: Parallelizable(ParallelScope.Children)]
diff --git a/articles/nunit-analyzers/NUnit1009.html b/articles/nunit-analyzers/NUnit1009.html
index e1526fc9f..b68b2833a 100644
--- a/articles/nunit-analyzers/NUnit1009.html
+++ b/articles/nunit-analyzers/NUnit1009.html
@@ -113,7 +113,7 @@ 

Code -ParallelizableUsageAnalyzer +ParallelizableUsageAnalyzer diff --git a/articles/nunit-analyzers/NUnit1010.html b/articles/nunit-analyzers/NUnit1010.html index 210826904..45ba71d5d 100644 --- a/articles/nunit-analyzers/NUnit1010.html +++ b/articles/nunit-analyzers/NUnit1010.html @@ -113,7 +113,7 @@

One may not Code -ParallelizableUsageAnalyzer +ParallelizableUsageAnalyzer diff --git a/articles/nunit-analyzers/NUnit1011.html b/articles/nunit-analyzers/NUnit1011.html index bc9965a1b..39749095e 100644 --- a/articles/nunit-analyzers/NUnit1011.html +++ b/articles/nunit-analyzers/NUnit1011.html @@ -113,7 +113,7 @@

The Tes Code -TestCaseSourceUsesStringAnalyzer +TestCaseSourceUsesStringAnalyzer diff --git a/articles/nunit-analyzers/NUnit1012.html b/articles/nunit-analyzers/NUnit1012.html index 3c525b077..62de61abe 100644 --- a/articles/nunit-analyzers/NUnit1012.html +++ b/articles/nunit-analyzers/NUnit1012.html @@ -113,7 +113,7 @@

The async test m Code -TestMethodUsageAnalyzer +TestMethodUsageAnalyzer diff --git a/articles/nunit-analyzers/NUnit1013.html b/articles/nunit-analyzers/NUnit1013.html index 5e95356c6..3b08c51bb 100644 --- a/articles/nunit-analyzers/NUnit1013.html +++ b/articles/nunit-analyzers/NUnit1013.html @@ -113,7 +113,7 @@

Code -TestMethodUsageAnalyzer +TestMethodUsageAnalyzer @@ -136,7 +136,8 @@

Example Violation

}

Explanation

-

The NUnit ExpectedResult syntax is not used, so it's an error for this method to return something that isn't being checked.

+

The NUnit ExpectedResult syntax is not used, so it's an error for this method to return something that isn't being +checked.

Fix

Utilize the ExpectedResult syntax:

[TestCase(1, ExpectedResult = "1")]
@@ -166,7 +167,8 @@ 

Fix

Configure severity

Via ruleset file

-

Configure the severity per project, for more info see MSDN.

+

Configure the severity per project, for more info see +MSDN.

Via .editorconfig file

# NUnit1013: The async test method must have a non-generic Task return type when no result is expected
 dotnet_diagnostic.NUnit1013.severity = chosenSeverity
diff --git a/articles/nunit-analyzers/NUnit1014.html b/articles/nunit-analyzers/NUnit1014.html
index a0ec22d3b..a3b320355 100644
--- a/articles/nunit-analyzers/NUnit1014.html
+++ b/articles/nunit-analyzers/NUnit1014.html
@@ -113,7 +113,7 @@ 

Code -TestMethodUsageAnalyzer +TestMethodUsageAnalyzer diff --git a/articles/nunit-analyzers/NUnit1015.html b/articles/nunit-analyzers/NUnit1015.html index 8305e69e3..bbb1beb8d 100644 --- a/articles/nunit-analyzers/NUnit1015.html +++ b/articles/nunit-analyzers/NUnit1015.html @@ -86,7 +86,7 @@

NUnit1015

-

The source type does not implement IEnumerable

+

The source type does not implement I(Async)Enumerable

@@ -113,12 +113,12 @@

The source type does not

- +
CodeTestCaseSourceUsesStringAnalyzerTestCaseSourceUsesStringAnalyzer

Description

-

The source type must implement IEnumerable in order to provide test cases.

+

The source type must implement I(Async)Enumerable in order to provide test cases.

Motivation

To prevent tests that will fail at runtime due to improper construction.

How to fix violations

@@ -128,7 +128,7 @@

Example Violation

[TestCaseSource(typeof(DivideCases))] public void DivideTest(int n, int d, int q) { - Assert.AreEqual(q, n / d); + ClassicAssert.AreEqual(q, n / d); } } @@ -143,16 +143,17 @@

Example Violation

}

Explanation

-

In the sample above, the class DivideCases does not implement IEnumerable.

-

However, source types specified by TestCaseSource must implement IEnumerable.

+

In the sample above, the class DivideCases does not implement IEnumerable nor IAsyncEnumerable

+

However, source types specified by TestCaseSource +must implement IEnumerable or IAsyncEnumerable.

Fix

-

Make the source type implement IEnumerable:

+

Make the source type implement IEnumerable or IAsyncEnumerable

public class MyTestClass
 {
     [TestCaseSource(typeof(DivideCases))]
     public void DivideTest(int n, int d, int q)
     {
-        Assert.AreEqual(q, n / d);
+        ClassicAssert.AreEqual(q, n / d);
     }
 }
 
@@ -169,23 +170,24 @@ 

Fix

Configure severity

Via ruleset file

-

Configure the severity per project, for more info see MSDN.

+

Configure the severity per project, for more info see +MSDN.

Via .editorconfig file

-
# NUnit1015: The source type does not implement IEnumerable
+
# NUnit1015: The source type does not implement I(Async)Enumerable
 dotnet_diagnostic.NUnit1015.severity = chosenSeverity
 

where chosenSeverity can be one of none, silent, suggestion, warning, or error.

Via #pragma directive

-
#pragma warning disable NUnit1015 // The source type does not implement IEnumerable
+
#pragma warning disable NUnit1015 // The source type does not implement I(Async)Enumerable
 Code violating the rule here
-#pragma warning restore NUnit1015 // The source type does not implement IEnumerable
+#pragma warning restore NUnit1015 // The source type does not implement I(Async)Enumerable
 

Or put this at the top of the file to disable all instances.

-
#pragma warning disable NUnit1015 // The source type does not implement IEnumerable
+
#pragma warning disable NUnit1015 // The source type does not implement I(Async)Enumerable
 

Via attribute [SuppressMessage]

[System.Diagnostics.CodeAnalysis.SuppressMessage("Structure",
-    "NUnit1015:The source type does not implement IEnumerable",
+    "NUnit1015:The source type does not implement I(Async)Enumerable",
     Justification = "Reason...")]
 
diff --git a/articles/nunit-analyzers/NUnit1016.html b/articles/nunit-analyzers/NUnit1016.html index 5d40951ef..ed3f567f7 100644 --- a/articles/nunit-analyzers/NUnit1016.html +++ b/articles/nunit-analyzers/NUnit1016.html @@ -113,7 +113,7 @@

The source type doe Code -TestCaseSourceUsesStringAnalyzer +TestCaseSourceUsesStringAnalyzer @@ -128,7 +128,7 @@

Example Violation

[TestCaseSource(typeof(DivideCases))] public void DivideTest(int n, int d, int q) { - Assert.AreEqual(q, n / d); + ClassicAssert.AreEqual(q, n / d); } } @@ -146,7 +146,8 @@

Example Violation

Explanation

In the sample above, the class DivideCases does not have a default constructor - i.e. a constructor with no parameters.

-

However, source types specified by TestCaseSource must have a default constructor.

+

However, source types specified by TestCaseSource +must have a default constructor.

Fix

Add a default constructor to the source type (or remove the parameters from an existing constructor):

public class MyTestClass
@@ -154,7 +155,7 @@ 

Fix

[TestCaseSource(typeof(DivideCases))] public void DivideTest(int n, int d, int q) { - Assert.AreEqual(q, n / d); + ClassicAssert.AreEqual(q, n / d); } } @@ -175,7 +176,8 @@

Fix

Configure severity

Via ruleset file

-

Configure the severity per project, for more info see MSDN.

+

Configure the severity per project, for more info see +MSDN.

Via .editorconfig file

# NUnit1016: The source type does not have a default constructor
 dotnet_diagnostic.NUnit1016.severity = chosenSeverity
diff --git a/articles/nunit-analyzers/NUnit1017.html b/articles/nunit-analyzers/NUnit1017.html
index bebe34096..c0abd6309 100644
--- a/articles/nunit-analyzers/NUnit1017.html
+++ b/articles/nunit-analyzers/NUnit1017.html
@@ -113,7 +113,7 @@ 

The specified source is not static Code -TestCaseSourceUsesStringAnalyzer +TestCaseSourceUsesStringAnalyzer @@ -128,7 +128,7 @@

Example Violation

[TestCaseSource(nameof(DivideCases))] public void DivideTest(int n, int d, int q) { - Assert.AreEqual(q, n / d); + ClassicAssert.AreEqual(q, n / d); } object[] DivideCases = @@ -141,7 +141,8 @@

Example Violation

Explanation

In the sample above, DivideCases is not a static field.

-

However, sources specified by TestCaseSource must be static.

+

However, sources specified by TestCaseSource +must be static.

Fix

Make the source static:

public class MyTestClass
@@ -149,7 +150,7 @@ 

Fix

[TestCaseSource(nameof(DivideCases))] public void DivideTest(int n, int d, int q) { - Assert.AreEqual(q, n / d); + ClassicAssert.AreEqual(q, n / d); } static object[] DivideCases = @@ -163,7 +164,8 @@

Fix

Configure severity

Via ruleset file

-

Configure the severity per project, for more info see MSDN.

+

Configure the severity per project, for more info see +MSDN.

Via .editorconfig file

# NUnit1017: The specified source is not static
 dotnet_diagnostic.NUnit1017.severity = chosenSeverity
diff --git a/articles/nunit-analyzers/NUnit1018.html b/articles/nunit-analyzers/NUnit1018.html
index 0ca8a2334..689cdceb0 100644
--- a/articles/nunit-analyzers/NUnit1018.html
+++ b/articles/nunit-analyzers/NUnit1018.html
@@ -113,7 +113,7 @@ 

Code -TestCaseSourceUsesStringAnalyzer +TestCaseSourceUsesStringAnalyzer @@ -160,7 +160,8 @@

Fix

Configure severity

Via ruleset file

-

Configure the severity per project, for more info see MSDN.

+

Configure the severity per project, for more info see +MSDN.

Via .editorconfig file

# NUnit1018: The number of parameters provided by the TestCaseSource does not match the number of parameters in the target method
 dotnet_diagnostic.NUnit1018.severity = chosenSeverity
diff --git a/articles/nunit-analyzers/NUnit1019.html b/articles/nunit-analyzers/NUnit1019.html
index 337143d20..f32d90fc5 100644
--- a/articles/nunit-analyzers/NUnit1019.html
+++ b/articles/nunit-analyzers/NUnit1019.html
@@ -86,7 +86,7 @@
             

NUnit1019

-

The source specified by the TestCaseSource does not return an IEnumerable or a type that implements IEnumerable

+

The source specified by the TestCaseSource does not return an I(Async)Enumerable or a type that implements I(Async)Enumerable

@@ -113,12 +113,12 @@

Code -

+
TestCaseSourceUsesStringAnalyzerTestCaseSourceUsesStringAnalyzer

Description

-

The source specified by the TestCaseSource must return an IEnumerable or a type that implements IEnumerable.

+

The source specified by the TestCaseSource must return an I(Async)Enumerable or a type that implements I(Async)Enumerable.

Motivation

To prevent tests that will fail at runtime due to improper construction.

How to fix violations

@@ -134,12 +134,12 @@

Example Violation

}

Explanation

-

In the sample above, the source specified by TestCaseSource - the field testCases - does not return an IEnumerable -or a type that implements IEnumerable, instead it returns an int.

-

However, sources specified by TestCaseSource must return an IEnumerable or a type that implements -IEnumerable..

+

In the sample above, the source specified by TestCaseSource - the field testCases - does not return an +I(Async)Enumerable or a type that implements I(Async)Enumerable, instead it returns an int.

+

However, sources specified by TestCaseSource +must return an I(Async)Enumerable or a type that implements I(Async)Enumerable..

Fix

-

Change testCases to return an IEnumerable or a type that implements IEnumerable:

+

Change testCases to return an I(Async)Enumerable or a type that implements I(Async)Enumerable:

public class AnalyzeWhenSourceDoesProvideIEnumerable
 {
     private static readonly int[] testCases = new int[] { 1, 2, 42 };
@@ -156,21 +156,21 @@ 

Via ruleset file

Configure the severity per project, for more info see MSDN.

Via .editorconfig file

-
# NUnit1019: The source specified by the TestCaseSource does not return an IEnumerable or a type that implements IEnumerable
+
# NUnit1019: The source specified by the TestCaseSource does not return an I(Async)Enumerable or a type that implements I(Async)Enumerable
 dotnet_diagnostic.NUnit1019.severity = chosenSeverity
 

where chosenSeverity can be one of none, silent, suggestion, warning, or error.

Via #pragma directive

-
#pragma warning disable NUnit1019 // The source specified by the TestCaseSource does not return an IEnumerable or a type that implements IEnumerable
+
#pragma warning disable NUnit1019 // The source specified by the TestCaseSource does not return an I(Async)Enumerable or a type that implements I(Async)Enumerable
 Code violating the rule here
-#pragma warning restore NUnit1019 // The source specified by the TestCaseSource does not return an IEnumerable or a type that implements IEnumerable
+#pragma warning restore NUnit1019 // The source specified by the TestCaseSource does not return an I(Async)Enumerable or a type that implements I(Async)Enumerable
 

Or put this at the top of the file to disable all instances.

-
#pragma warning disable NUnit1019 // The source specified by the TestCaseSource does not return an IEnumerable or a type that implements IEnumerable
+
#pragma warning disable NUnit1019 // The source specified by the TestCaseSource does not return an I(Async)Enumerable or a type that implements I(Async)Enumerable
 

Via attribute [SuppressMessage]

[System.Diagnostics.CodeAnalysis.SuppressMessage("Structure",
-    "NUnit1019:The source specified by the TestCaseSource does not return an IEnumerable or a type that implements IEnumerable",
+    "NUnit1019:The source specified by the TestCaseSource does not return an I(Async)Enumerable or a type that implements I(Async)Enumerable",
     Justification = "Reason...")]
 
diff --git a/articles/nunit-analyzers/NUnit1020.html b/articles/nunit-analyzers/NUnit1020.html index ac929cd53..10e07374f 100644 --- a/articles/nunit-analyzers/NUnit1020.html +++ b/articles/nunit-analyzers/NUnit1020.html @@ -113,7 +113,7 @@

Code -TestCaseSourceUsesStringAnalyzer +TestCaseSourceUsesStringAnalyzer @@ -128,7 +128,7 @@

Example Violation

[TestCaseSource(nameof(DivideCases), new object[] { "Testing" })] public void DivideTest(int n, int d, int q) { - Assert.AreEqual(q, n / d); + ClassicAssert.AreEqual(q, n / d); } static object[] DivideCases = @@ -149,7 +149,7 @@

Fix

[TestCaseSource(nameof(DivideCases), new object[] { "Testing" })] public void DivideTest(int n, int d, int q) { - Assert.AreEqual(q, n / d); + ClassicAssert.AreEqual(q, n / d); } static object[] DivideCases(string input) diff --git a/articles/nunit-analyzers/NUnit1021.html b/articles/nunit-analyzers/NUnit1021.html index cf4343b6e..eae6a3451 100644 --- a/articles/nunit-analyzers/NUnit1021.html +++ b/articles/nunit-analyzers/NUnit1021.html @@ -113,7 +113,7 @@

The ValueS Code -ValueSourceUsageAnalyzer +ValueSourceUsageAnalyzer diff --git a/articles/nunit-analyzers/NUnit1022.html b/articles/nunit-analyzers/NUnit1022.html index a22c6c55e..1c0b03a14 100644 --- a/articles/nunit-analyzers/NUnit1022.html +++ b/articles/nunit-analyzers/NUnit1022.html @@ -113,7 +113,7 @@

The specified source is not static Code -ValueSourceUsageAnalyzer +ValueSourceUsageAnalyzer @@ -128,7 +128,7 @@

Example Violation

[Test] public void DivideTest([ValueSource(nameof(Numbers))] int n) { - Assert.AreEqual(n, Is.GreaterThanOrEqualTo(0)); + ClassicAssert.AreEqual(n, Is.GreaterThanOrEqualTo(0)); } object[] Numbers => new int[] { 1, 2, 3 }; @@ -144,7 +144,7 @@

Fix

[Test] public void DivideTest([ValueSource(nameof(Numbers))] int n) { - Assert.AreEqual(n, Is.GreaterThanOrEqualTo(0)); + ClassicAssert.AreEqual(n, Is.GreaterThanOrEqualTo(0)); } static object[] Numbers => new int[] { 1, 2, 3 }; @@ -153,7 +153,8 @@

Fix

Configure severity

Via ruleset file

-

Configure the severity per project, for more info see MSDN.

+

Configure the severity per project, for more info see +MSDN.

Via .editorconfig file

# NUnit1022: The specified source is not static
 dotnet_diagnostic.NUnit1022.severity = chosenSeverity
diff --git a/articles/nunit-analyzers/NUnit1023.html b/articles/nunit-analyzers/NUnit1023.html
index d9d0e8e7f..5bed360a0 100644
--- a/articles/nunit-analyzers/NUnit1023.html
+++ b/articles/nunit-analyzers/NUnit1023.html
@@ -113,7 +113,7 @@ 

Code -ValueSourceUsageAnalyzer +ValueSourceUsageAnalyzer @@ -160,7 +160,8 @@

Fix

Configure severity

Via ruleset file

-

Configure the severity per project, for more info see MSDN.

+

Configure the severity per project, for more info see +MSDN.

Via .editorconfig file

# NUnit1023: The target method expects parameters which cannot be supplied by the ValueSource
 dotnet_diagnostic.NUnit1023.severity = chosenSeverity
diff --git a/articles/nunit-analyzers/NUnit1024.html b/articles/nunit-analyzers/NUnit1024.html
index b257ea8e7..b9f1e6601 100644
--- a/articles/nunit-analyzers/NUnit1024.html
+++ b/articles/nunit-analyzers/NUnit1024.html
@@ -86,7 +86,7 @@
             

NUnit1024

-

The source specified by the ValueSource does not return an IEnumerable or a type that implements IEnumerable

+

The source specified by the ValueSource does not return an I(Async)Enumerable or a type that implements I(Async)Enumerable

@@ -113,12 +113,12 @@

Code -

+
ValueSourceUsageAnalyzerValueSourceUsageAnalyzer

Description

-

The source specified by the ValueSource must return an IEnumerable or a type that implements IEnumerable.

+

The source specified by the ValueSource must return an I(Async)Enumerable or a type that implements I(Async)Enumerable.

Motivation

To prevent tests that will fail at runtime due to improper construction.

How to fix violations

@@ -134,12 +134,12 @@

Example Violation

}

Explanation

-

In the sample above, the source specified by ValueSource - the field testCases - does not return an IEnumerable or -a type that implements IEnumerable, instead it returns an int.

-

However, sources specified by ValueSource must return an IEnumerable or a type that implements -IEnumerable..

+

In the sample above, the source specified by ValueSource - the field testCases - does not return an +I(Async)Enumerable or a type that implements I(Async)Enumerable, instead it returns an int.

+

However, sources specified by ValueSource +must return an I(Async)Enumerable or a type that implements I(Async)Enumerable..

Fix

-

Change testCases to return an IEnumerable or a type that implements IEnumerable:

+

Change testCases to return an I(Async)Enumerable or a type that implements I(Async)Enumerable:

public class AnalyzeWhenSourceDoesProvideIEnumerable
 {
     private static readonly int[] testCases = new int[] { 1, 2, 42 };
@@ -156,21 +156,21 @@ 

Via ruleset file

Configure the severity per project, for more info see MSDN.

Via .editorconfig file

-
# NUnit1024: The source specified by the ValueSource does not return an IEnumerable or a type that implements IEnumerable
+
# NUnit1024: The source specified by the ValueSource does not return an I(Async)Enumerable or a type that implements I(Async)Enumerable
 dotnet_diagnostic.NUnit1024.severity = chosenSeverity
 

where chosenSeverity can be one of none, silent, suggestion, warning, or error.

Via #pragma directive

-
#pragma warning disable NUnit1024 // The source specified by the ValueSource does not return an IEnumerable or a type that implements IEnumerable
+
#pragma warning disable NUnit1024 // The source specified by the ValueSource does not return an I(Async)Enumerable or a type that implements I(Async)Enumerable
 Code violating the rule here
-#pragma warning restore NUnit1024 // The source specified by the ValueSource does not return an IEnumerable or a type that implements IEnumerable
+#pragma warning restore NUnit1024 // The source specified by the ValueSource does not return an I(Async)Enumerable or a type that implements I(Async)Enumerable
 

Or put this at the top of the file to disable all instances.

-
#pragma warning disable NUnit1024 // The source specified by the ValueSource does not return an IEnumerable or a type that implements IEnumerable
+
#pragma warning disable NUnit1024 // The source specified by the ValueSource does not return an I(Async)Enumerable or a type that implements I(Async)Enumerable
 

Via attribute [SuppressMessage]

[System.Diagnostics.CodeAnalysis.SuppressMessage("Structure",
-    "NUnit1024:The source specified by the ValueSource does not return an IEnumerable or a type that implements IEnumerable",
+    "NUnit1024:The source specified by the ValueSource does not return an I(Async)Enumerable or a type that implements I(Async)Enumerable",
     Justification = "Reason...")]
 
diff --git a/articles/nunit-analyzers/NUnit1025.html b/articles/nunit-analyzers/NUnit1025.html index bb0adecc5..e50e16058 100644 --- a/articles/nunit-analyzers/NUnit1025.html +++ b/articles/nunit-analyzers/NUnit1025.html @@ -113,7 +113,7 @@

The ValueS Code -ValueSourceUsageAnalyzer +ValueSourceUsageAnalyzer diff --git a/articles/nunit-analyzers/NUnit1026.html b/articles/nunit-analyzers/NUnit1026.html index 866286787..c1402838c 100644 --- a/articles/nunit-analyzers/NUnit1026.html +++ b/articles/nunit-analyzers/NUnit1026.html @@ -113,7 +113,7 @@

The test or setup/teardo Code -TestMethodAccessibilityLevelAnalyzer +TestMethodAccessibilityLevelAnalyzer diff --git a/articles/nunit-analyzers/NUnit1027.html b/articles/nunit-analyzers/NUnit1027.html index 44e02717b..e92800c72 100644 --- a/articles/nunit-analyzers/NUnit1027.html +++ b/articles/nunit-analyzers/NUnit1027.html @@ -113,7 +113,7 @@

Code -TestMethodUsageAnalyzer +TestMethodUsageAnalyzer diff --git a/articles/nunit-analyzers/NUnit1028.html b/articles/nunit-analyzers/NUnit1028.html index a3d483cb7..4f60b6450 100644 --- a/articles/nunit-analyzers/NUnit1028.html +++ b/articles/nunit-analyzers/NUnit1028.html @@ -113,13 +113,13 @@

The non-test method is public

Code -NonTestMethodAccessibilityLevelAnalyzer +NonTestMethodAccessibilityLevelAnalyzer

Description

-

A fixture should not contain any public non-test methods. -There are two exceptions: A public constructor and an IDisposable.Dispose method implementation.

+

A fixture should not contain any public non-test methods.

+

There are two exceptions: A public constructor and an IDisposable.Dispose method implementation.

Motivation

A fixture should be self-contained and not have methods callable by other classes.

How to fix violations

@@ -128,7 +128,8 @@

How to fix violations

Configure severity

Via ruleset file

-

Configure the severity per project, for more info see MSDN.

+

Configure the severity per project, for more info see +MSDN.

Via .editorconfig file

# NUnit1028: The non-test method is public
 dotnet_diagnostic.NUnit1028.severity = chosenSeverity
diff --git a/articles/nunit-analyzers/NUnit1029.html b/articles/nunit-analyzers/NUnit1029.html
index 88c09790a..c5c73f859 100644
--- a/articles/nunit-analyzers/NUnit1029.html
+++ b/articles/nunit-analyzers/NUnit1029.html
@@ -113,7 +113,7 @@ 

Code -TestCaseSourceUsesStringAnalyzer +TestCaseSourceUsesStringAnalyzer diff --git a/articles/nunit-analyzers/NUnit1030.html b/articles/nunit-analyzers/NUnit1030.html index 0482ed285..63d8d6060 100644 --- a/articles/nunit-analyzers/NUnit1030.html +++ b/articles/nunit-analyzers/NUnit1030.html @@ -113,7 +113,7 @@

Code -TestCaseSourceUsesStringAnalyzer +TestCaseSourceUsesStringAnalyzer diff --git a/articles/nunit-analyzers/NUnit1031.html b/articles/nunit-analyzers/NUnit1031.html index 0e3569379..c427888cf 100644 --- a/articles/nunit-analyzers/NUnit1031.html +++ b/articles/nunit-analyzers/NUnit1031.html @@ -113,7 +113,7 @@

Code -ValuesUsageAnalyzer +ValuesUsageAnalyzer diff --git a/articles/nunit-analyzers/NUnit1032.html b/articles/nunit-analyzers/NUnit1032.html index 5d99c6a25..5398e8dac 100644 --- a/articles/nunit-analyzers/NUnit1032.html +++ b/articles/nunit-analyzers/NUnit1032.html @@ -113,7 +113,7 @@

An Code -DisposeFieldsAndPropertiesInTearDownAnalyzer +DisposeFieldsAndPropertiesInTearDownAnalyzer @@ -128,7 +128,8 @@

How to fix violations

Configure severity

Via ruleset file

-

Configure the severity per project, for more info see MSDN.

+

Configure the severity per project, for more info see +MSDN.

Via .editorconfig file

# NUnit1032: An IDisposable field/property should be Disposed in a TearDown method
 dotnet_diagnostic.NUnit1032.severity = chosenSeverity
diff --git a/articles/nunit-analyzers/NUnit2001.html b/articles/nunit-analyzers/NUnit2001.html
index 4ab5a87e2..12e48b0d3 100644
--- a/articles/nunit-analyzers/NUnit2001.html
+++ b/articles/nunit-analyzers/NUnit2001.html
@@ -86,7 +86,7 @@
             

NUnit2001

-

Consider using Assert.That(expr, Is.False) instead of Assert.False(expr)

+

Consider using Assert.That(expr, Is.False) instead of ClassicAssert.False(expr)

@@ -113,23 +113,24 @@

Consid

- +
CodeClassicModelAssertUsageAnalyzerClassicModelAssertUsageAnalyzer

Description

-

Consider using the constraint model, Assert.That(expr, Is.False), instead of the classic model, Assert.False(expr).

+

Consider using the constraint model, Assert.That(expr, Is.False), instead of the classic model, +ClassicAssert.False(expr).

Motivation

The classic Assert model contains less flexibility than the constraint model, -so this analyzer marks usages of Assert.False from the classic Assert model.

+so this analyzer marks usages of ClassicAssert.False from the classic Assert model.

[Test]
 public void Test()
 {
-    Assert.False(expression);
+    ClassicAssert.False(expression);
 }
 

How to fix violations

-

The analyzer comes with a code fix that will replace Assert.False(expression) with +

The analyzer comes with a code fix that will replace ClassicAssert.False(expression) with Assert.That(expression, Is.False). So the code block above will be changed into.

[Test]
 public void Test()
@@ -140,23 +141,24 @@ 

How to fix violations

Configure severity

Via ruleset file

-

Configure the severity per project, for more info see MSDN.

+

Configure the severity per project, for more info see +MSDN.

Via .editorconfig file

-
# NUnit2001: Consider using Assert.That(expr, Is.False) instead of Assert.False(expr)
+
# NUnit2001: Consider using Assert.That(expr, Is.False) instead of ClassicAssert.False(expr)
 dotnet_diagnostic.NUnit2001.severity = chosenSeverity
 

where chosenSeverity can be one of none, silent, suggestion, warning, or error.

Via #pragma directive

-
#pragma warning disable NUnit2001 // Consider using Assert.That(expr, Is.False) instead of Assert.False(expr)
+
#pragma warning disable NUnit2001 // Consider using Assert.That(expr, Is.False) instead of ClassicAssert.False(expr)
 Code violating the rule here
-#pragma warning restore NUnit2001 // Consider using Assert.That(expr, Is.False) instead of Assert.False(expr)
+#pragma warning restore NUnit2001 // Consider using Assert.That(expr, Is.False) instead of ClassicAssert.False(expr)
 

Or put this at the top of the file to disable all instances.

-
#pragma warning disable NUnit2001 // Consider using Assert.That(expr, Is.False) instead of Assert.False(expr)
+
#pragma warning disable NUnit2001 // Consider using Assert.That(expr, Is.False) instead of ClassicAssert.False(expr)
 

Via attribute [SuppressMessage]

[System.Diagnostics.CodeAnalysis.SuppressMessage("Assertion",
-    "NUnit2001:Consider using Assert.That(expr, Is.False) instead of Assert.False(expr)",
+    "NUnit2001:Consider using Assert.That(expr, Is.False) instead of ClassicAssert.False(expr)",
     Justification = "Reason...")]
 
diff --git a/articles/nunit-analyzers/NUnit2002.html b/articles/nunit-analyzers/NUnit2002.html index 97b3ed8b5..0478f08e6 100644 --- a/articles/nunit-analyzers/NUnit2002.html +++ b/articles/nunit-analyzers/NUnit2002.html @@ -86,7 +86,7 @@

NUnit2002

-

Consider using Assert.That(expr, Is.False) instead of Assert.IsFalse(expr)

+

Consider using Assert.That(expr, Is.False) instead of ClassicAssert.IsFalse(expr)

@@ -113,23 +113,24 @@

Cons

- +
CodeClassicModelAssertUsageAnalyzerClassicModelAssertUsageAnalyzer

Description

-

Consider using the constraint model, Assert.That(expr, Is.False), instead of the classic model, Assert.IsFalse(expr).

+

Consider using the constraint model, Assert.That(expr, Is.False), instead of the classic model, +ClassicAssert.IsFalse(expr).

Motivation

The classic Assert model contains less flexibility than the constraint model, -so this analyzer marks usages of Assert.IsFalse from the classic Assert model.

+so this analyzer marks usages of ClassicAssert.IsFalse from the classic Assert model.

[Test]
 public void Test()
 {
-    Assert.IsFalse(expression);
+    ClassicAssert.IsFalse(expression);
 }
 

How to fix violations

-

The analyzer comes with a code fix that will replace Assert.IsFalse(expression) with +

The analyzer comes with a code fix that will replace ClassicAssert.IsFalse(expression) with Assert.That(expression, Is.False). So the code block above will be changed into.

[Test]
 public void Test()
@@ -140,23 +141,24 @@ 

How to fix violations

Configure severity

Via ruleset file

-

Configure the severity per project, for more info see MSDN.

+

Configure the severity per project, for more info see +MSDN.

Via .editorconfig file

-
# NUnit2002: Consider using Assert.That(expr, Is.False) instead of Assert.IsFalse(expr)
+
# NUnit2002: Consider using Assert.That(expr, Is.False) instead of ClassicAssert.IsFalse(expr)
 dotnet_diagnostic.NUnit2002.severity = chosenSeverity
 

where chosenSeverity can be one of none, silent, suggestion, warning, or error.

Via #pragma directive

-
#pragma warning disable NUnit2002 // Consider using Assert.That(expr, Is.False) instead of Assert.IsFalse(expr)
+
#pragma warning disable NUnit2002 // Consider using Assert.That(expr, Is.False) instead of ClassicAssert.IsFalse(expr)
 Code violating the rule here
-#pragma warning restore NUnit2002 // Consider using Assert.That(expr, Is.False) instead of Assert.IsFalse(expr)
+#pragma warning restore NUnit2002 // Consider using Assert.That(expr, Is.False) instead of ClassicAssert.IsFalse(expr)
 

Or put this at the top of the file to disable all instances.

-
#pragma warning disable NUnit2002 // Consider using Assert.That(expr, Is.False) instead of Assert.IsFalse(expr)
+
#pragma warning disable NUnit2002 // Consider using Assert.That(expr, Is.False) instead of ClassicAssert.IsFalse(expr)
 

Via attribute [SuppressMessage]

[System.Diagnostics.CodeAnalysis.SuppressMessage("Assertion",
-    "NUnit2002:Consider using Assert.That(expr, Is.False) instead of Assert.IsFalse(expr)",
+    "NUnit2002:Consider using Assert.That(expr, Is.False) instead of ClassicAssert.IsFalse(expr)",
     Justification = "Reason...")]
 
diff --git a/articles/nunit-analyzers/NUnit2003.html b/articles/nunit-analyzers/NUnit2003.html index 07391fc5b..2a1002ae8 100644 --- a/articles/nunit-analyzers/NUnit2003.html +++ b/articles/nunit-analyzers/NUnit2003.html @@ -86,7 +86,7 @@

NUnit2003

-

Consider using Assert.That(expr, Is.True) instead of Assert.IsTrue(expr)

+

Consider using Assert.That(expr, Is.True) instead of ClassicAssert.IsTrue(expr)

@@ -113,23 +113,24 @@

Consid

- +
CodeClassicModelAssertUsageAnalyzerClassicModelAssertUsageAnalyzer

Description

-

Consider using the constraint model, Assert.That(expr, Is.True), instead of the classic model, Assert.IsTrue(expr).

+

Consider using the constraint model, Assert.That(expr, Is.True), instead of the classic model, +ClassicAssert.IsTrue(expr).

Motivation

The classic Assert model contains less flexibility than the constraint model, -so this analyzer marks usages of Assert.IsTrue from the classic Assert model.

+so this analyzer marks usages of ClassicAssert.IsTrue from the classic Assert model.

[Test]
 public void Test()
 {
-    Assert.IsTrue(expression);
+    ClassicAssert.IsTrue(expression);
 }
 

How to fix violations

-

The analyzer comes with a code fix that will replace Assert.IsTrue(expression) with +

The analyzer comes with a code fix that will replace ClassicAssert.IsTrue(expression) with Assert.That(expression, Is.True). So the code block above will be changed into.

[Test]
 public void Test()
@@ -140,23 +141,24 @@ 

How to fix violations

Configure severity

Via ruleset file

-

Configure the severity per project, for more info see MSDN.

+

Configure the severity per project, for more info see +MSDN.

Via .editorconfig file

-
# NUnit2003: Consider using Assert.That(expr, Is.True) instead of Assert.IsTrue(expr)
+
# NUnit2003: Consider using Assert.That(expr, Is.True) instead of ClassicAssert.IsTrue(expr)
 dotnet_diagnostic.NUnit2003.severity = chosenSeverity
 

where chosenSeverity can be one of none, silent, suggestion, warning, or error.

Via #pragma directive

-
#pragma warning disable NUnit2003 // Consider using Assert.That(expr, Is.True) instead of Assert.IsTrue(expr)
+
#pragma warning disable NUnit2003 // Consider using Assert.That(expr, Is.True) instead of ClassicAssert.IsTrue(expr)
 Code violating the rule here
-#pragma warning restore NUnit2003 // Consider using Assert.That(expr, Is.True) instead of Assert.IsTrue(expr)
+#pragma warning restore NUnit2003 // Consider using Assert.That(expr, Is.True) instead of ClassicAssert.IsTrue(expr)
 

Or put this at the top of the file to disable all instances.

-
#pragma warning disable NUnit2003 // Consider using Assert.That(expr, Is.True) instead of Assert.IsTrue(expr)
+
#pragma warning disable NUnit2003 // Consider using Assert.That(expr, Is.True) instead of ClassicAssert.IsTrue(expr)
 

Via attribute [SuppressMessage]

[System.Diagnostics.CodeAnalysis.SuppressMessage("Assertion",
-    "NUnit2003:Consider using Assert.That(expr, Is.True) instead of Assert.IsTrue(expr)",
+    "NUnit2003:Consider using Assert.That(expr, Is.True) instead of ClassicAssert.IsTrue(expr)",
     Justification = "Reason...")]
 
diff --git a/articles/nunit-analyzers/NUnit2004.html b/articles/nunit-analyzers/NUnit2004.html index 159f08665..5bac801bb 100644 --- a/articles/nunit-analyzers/NUnit2004.html +++ b/articles/nunit-analyzers/NUnit2004.html @@ -86,7 +86,7 @@

NUnit2004

-

Consider using Assert.That(expr, Is.True) instead of Assert.True(expr)

+

Consider using Assert.That(expr, Is.True) instead of ClassicAssert.True(expr)

@@ -113,23 +113,24 @@

Consider

- +
CodeClassicModelAssertUsageAnalyzerClassicModelAssertUsageAnalyzer

Description

-

Consider using the constraint model, Assert.That(expr, Is.True), instead of the classic model, Assert.True(expr).

+

Consider using the constraint model, Assert.That(expr, Is.True), instead of the classic model, +ClassicAssert.True(expr).

Motivation

The classic Assert model contains less flexibility than the constraint model, -so this analyzer marks usages of Assert.True from the classic Assert model.

+so this analyzer marks usages of ClassicAssert.True from the classic Assert model.

[Test]
 public void Test()
 {
-    Assert.True(expression);
+    ClassicAssert.True(expression);
 }
 

How to fix violations

-

The analyzer comes with a code fix that will replace Assert.True(expression) with +

The analyzer comes with a code fix that will replace ClassicAssert.True(expression) with Assert.That(expression, Is.True). So the code block above will be changed into.

[Test]
 public void Test()
@@ -140,23 +141,24 @@ 

How to fix violations

Configure severity

Via ruleset file

-

Configure the severity per project, for more info see MSDN.

+

Configure the severity per project, for more info see +MSDN.

Via .editorconfig file

-
# NUnit2004: Consider using Assert.That(expr, Is.True) instead of Assert.True(expr)
+
# NUnit2004: Consider using Assert.That(expr, Is.True) instead of ClassicAssert.True(expr)
 dotnet_diagnostic.NUnit2004.severity = chosenSeverity
 

where chosenSeverity can be one of none, silent, suggestion, warning, or error.

Via #pragma directive

-
#pragma warning disable NUnit2004 // Consider using Assert.That(expr, Is.True) instead of Assert.True(expr)
+
#pragma warning disable NUnit2004 // Consider using Assert.That(expr, Is.True) instead of ClassicAssert.True(expr)
 Code violating the rule here
-#pragma warning restore NUnit2004 // Consider using Assert.That(expr, Is.True) instead of Assert.True(expr)
+#pragma warning restore NUnit2004 // Consider using Assert.That(expr, Is.True) instead of ClassicAssert.True(expr)
 

Or put this at the top of the file to disable all instances.

-
#pragma warning disable NUnit2004 // Consider using Assert.That(expr, Is.True) instead of Assert.True(expr)
+
#pragma warning disable NUnit2004 // Consider using Assert.That(expr, Is.True) instead of ClassicAssert.True(expr)
 

Via attribute [SuppressMessage]

[System.Diagnostics.CodeAnalysis.SuppressMessage("Assertion",
-    "NUnit2004:Consider using Assert.That(expr, Is.True) instead of Assert.True(expr)",
+    "NUnit2004:Consider using Assert.That(expr, Is.True) instead of ClassicAssert.True(expr)",
     Justification = "Reason...")]
 
diff --git a/articles/nunit-analyzers/NUnit2005.html b/articles/nunit-analyzers/NUnit2005.html index 767efc77e..b30536875 100644 --- a/articles/nunit-analyzers/NUnit2005.html +++ b/articles/nunit-analyzers/NUnit2005.html @@ -86,7 +86,7 @@

NUnit2005

-

Consider using Assert.That(actual, Is.EqualTo(expected)) instead of Assert.AreEqual(expected, actual)

+

Consider using Assert.That(actual, Is.EqualTo(expected)) instead of ClassicAssert.AreEqual(expected, actual)

@@ -113,24 +113,24 @@

Code -

+
ClassicModelAssertUsageAnalyzerClassicModelAssertUsageAnalyzer

Description

Consider using the constraint model, Assert.That(actual, Is.EqualTo(expected)), instead of the classic model, -Assert.AreEqual(expected, actual).

+ClassicAssert.AreEqual(expected, actual).

Motivation

-

The classic Assert model, Assert.AreEqual(expected, actual), makes it easy to mix the expected and the actual -parameter, so this analyzer marks usages of Assert.AreEqual from the classic Assert model.

+

The classic Assert model, ClassicAssert.AreEqual(expected, actual), makes it easy to mix the expected and the +actual parameter, so this analyzer marks usages of ClassicAssert.AreEqual from the classic Assert model.

[Test]
 public void Test()
 {
-    Assert.AreEqual(expression1, expression2);
+    ClassicAssert.AreEqual(expression1, expression2);
 }
 

How to fix violations

-

The analyzer comes with a code fix that will replace Assert.AreEqual(expression1, expression2) with +

The analyzer comes with a code fix that will replace ClassicAssert.AreEqual(expression1, expression2) with Assert.That(expression2, Is.EqualTo(expression1)). So the code block above will be changed into.

[Test]
 public void Test()
@@ -144,21 +144,21 @@ 

Via ruleset file

Configure the severity per project, for more info see MSDN.

Via .editorconfig file

-
# NUnit2005: Consider using Assert.That(actual, Is.EqualTo(expected)) instead of Assert.AreEqual(expected, actual)
+
# NUnit2005: Consider using Assert.That(actual, Is.EqualTo(expected)) instead of ClassicAssert.AreEqual(expected, actual)
 dotnet_diagnostic.NUnit2005.severity = chosenSeverity
 

where chosenSeverity can be one of none, silent, suggestion, warning, or error.

Via #pragma directive

-
#pragma warning disable NUnit2005 // Consider using Assert.That(actual, Is.EqualTo(expected)) instead of Assert.AreEqual(expected, actual)
+
#pragma warning disable NUnit2005 // Consider using Assert.That(actual, Is.EqualTo(expected)) instead of ClassicAssert.AreEqual(expected, actual)
 Code violating the rule here
-#pragma warning restore NUnit2005 // Consider using Assert.That(actual, Is.EqualTo(expected)) instead of Assert.AreEqual(expected, actual)
+#pragma warning restore NUnit2005 // Consider using Assert.That(actual, Is.EqualTo(expected)) instead of ClassicAssert.AreEqual(expected, actual)
 

Or put this at the top of the file to disable all instances.

-
#pragma warning disable NUnit2005 // Consider using Assert.That(actual, Is.EqualTo(expected)) instead of Assert.AreEqual(expected, actual)
+
#pragma warning disable NUnit2005 // Consider using Assert.That(actual, Is.EqualTo(expected)) instead of ClassicAssert.AreEqual(expected, actual)
 

Via attribute [SuppressMessage]

[System.Diagnostics.CodeAnalysis.SuppressMessage("Assertion",
-    "NUnit2005:Consider using Assert.That(actual, Is.EqualTo(expected)) instead of Assert.AreEqual(expected, actual)",
+    "NUnit2005:Consider using Assert.That(actual, Is.EqualTo(expected)) instead of ClassicAssert.AreEqual(expected, actual)",
     Justification = "Reason...")]
 
diff --git a/articles/nunit-analyzers/NUnit2006.html b/articles/nunit-analyzers/NUnit2006.html index 057508a9f..32c0077fb 100644 --- a/articles/nunit-analyzers/NUnit2006.html +++ b/articles/nunit-analyzers/NUnit2006.html @@ -86,7 +86,7 @@

NUnit2006

-

Consider using Assert.That(actual, Is.Not.EqualTo(expected)) instead of Assert.AreNotEqual(expected, actual)

+

Consider using Assert.That(actual, Is.Not.EqualTo(expected)) instead of ClassicAssert.AreNotEqual(expected, actual)

@@ -113,24 +113,24 @@

Code -

+
ClassicModelAssertUsageAnalyzerClassicModelAssertUsageAnalyzer

Description

Consider using the constraint model, Assert.That(actual, Is.Not.EqualTo(expected)), instead of the classic model, -Assert.AreNotEqual(expected, actual).

+ClassicAssert.AreNotEqual(expected, actual).

Motivation

-

The classic Assert model, Assert.AreNotEqual(expected, actual), makes it easy to mix the expected and the actual -parameter, so this analyzer marks usages of Assert.AreNotEqual from the classic Assert model.

+

The classic Assert model, ClassicAssert.AreNotEqual(expected, actual), makes it easy to mix the expected and the +actual parameter, so this analyzer marks usages of ClassicAssert.AreNotEqual from the classic Assert model.

[Test]
 public void Test()
 {
-    Assert.AreNotEqual(expression1, expression2)
+    ClassicAssert.AreNotEqual(expression1, expression2)
 }
 

How to fix violations

-

The analyzer comes with a code fix that will replace Assert.AreNotEqual(expression1, expression2) with +

The analyzer comes with a code fix that will replace ClassicAssert.AreNotEqual(expression1, expression2) with Assert.That(expression2, Is.Not.EqualTo(expression1)). So the code block above will be changed into.

[Test]
 public void Test()
@@ -144,21 +144,21 @@ 

Via ruleset file

Configure the severity per project, for more info see MSDN.

Via .editorconfig file

-
# NUnit2006: Consider using Assert.That(actual, Is.Not.EqualTo(expected)) instead of Assert.AreNotEqual(expected, actual)
+
# NUnit2006: Consider using Assert.That(actual, Is.Not.EqualTo(expected)) instead of ClassicAssert.AreNotEqual(expected, actual)
 dotnet_diagnostic.NUnit2006.severity = chosenSeverity
 

where chosenSeverity can be one of none, silent, suggestion, warning, or error.

Via #pragma directive

-
#pragma warning disable NUnit2006 // Consider using Assert.That(actual, Is.Not.EqualTo(expected)) instead of Assert.AreNotEqual(expected, actual)
+
#pragma warning disable NUnit2006 // Consider using Assert.That(actual, Is.Not.EqualTo(expected)) instead of ClassicAssert.AreNotEqual(expected, actual)
 Code violating the rule here
-#pragma warning restore NUnit2006 // Consider using Assert.That(actual, Is.Not.EqualTo(expected)) instead of Assert.AreNotEqual(expected, actual)
+#pragma warning restore NUnit2006 // Consider using Assert.That(actual, Is.Not.EqualTo(expected)) instead of ClassicAssert.AreNotEqual(expected, actual)
 

Or put this at the top of the file to disable all instances.

-
#pragma warning disable NUnit2006 // Consider using Assert.That(actual, Is.Not.EqualTo(expected)) instead of Assert.AreNotEqual(expected, actual)
+
#pragma warning disable NUnit2006 // Consider using Assert.That(actual, Is.Not.EqualTo(expected)) instead of ClassicAssert.AreNotEqual(expected, actual)
 

Via attribute [SuppressMessage]

[System.Diagnostics.CodeAnalysis.SuppressMessage("Assertion",
-    "NUnit2006:Consider using Assert.That(actual, Is.Not.EqualTo(expected)) instead of Assert.AreNotEqual(expected, actual)",
+    "NUnit2006:Consider using Assert.That(actual, Is.Not.EqualTo(expected)) instead of ClassicAssert.AreNotEqual(expected, actual)",
     Justification = "Reason...")]
 
diff --git a/articles/nunit-analyzers/NUnit2007.html b/articles/nunit-analyzers/NUnit2007.html index ef2e97f5c..9d1361163 100644 --- a/articles/nunit-analyzers/NUnit2007.html +++ b/articles/nunit-analyzers/NUnit2007.html @@ -113,7 +113,7 @@

The actual value should not b Code -ConstActualValueUsageAnalyzer +ConstActualValueUsageAnalyzer @@ -130,7 +130,7 @@

Example Violation

{ var x = 5; Assert.That(5, Is.EqualTo(x)); - Assert.AreEqual(x, 5); + ClassicAssert.AreEqual(x, 5); }

Explanation

@@ -148,7 +148,7 @@

Fix

{ var x = 5; Assert.That(x, Is.EqualTo(5)); - Assert.AreEqual(5, x); + ClassicAssert.AreEqual(5, x); }
diff --git a/articles/nunit-analyzers/NUnit2008.html b/articles/nunit-analyzers/NUnit2008.html index e5893eff3..9763ed497 100644 --- a/articles/nunit-analyzers/NUnit2008.html +++ b/articles/nunit-analyzers/NUnit2008.html @@ -113,7 +113,7 @@

Incorrect IgnoreCase usage

Code -IgnoreCaseUsageAnalyzer +IgnoreCaseUsageAnalyzer diff --git a/articles/nunit-analyzers/NUnit2009.html b/articles/nunit-analyzers/NUnit2009.html index 7b79de71a..b63782f0f 100644 --- a/articles/nunit-analyzers/NUnit2009.html +++ b/articles/nunit-analyzers/NUnit2009.html @@ -113,7 +113,7 @@

Code -SameActualExpectedValueAnalyzer +SameActualExpectedValueAnalyzer diff --git a/articles/nunit-analyzers/NUnit2010.html b/articles/nunit-analyzers/NUnit2010.html index 847359897..6a4f1c2c4 100644 --- a/articles/nunit-analyzers/NUnit2010.html +++ b/articles/nunit-analyzers/NUnit2010.html @@ -113,7 +113,7 @@

Us Code -EqualConstraintUsageAnalyzer +EqualConstraintUsageAnalyzer @@ -126,11 +126,11 @@

Motivation

[Test]
 public void Test()
 {
-    Assert.True(actual == expected);
+    ClassicAssert.True(actual == expected);
 }
 

How to fix violations

-

The analyzer comes with a code fix that will replace Assert.True(actual == expected) with +

The analyzer comes with a code fix that will replace ClassicAssert.True(actual == expected) with Assert.That(actual, Is.EqualTo(expected)). So the code block above will be changed into

[Test]
 public void Test()
@@ -141,7 +141,8 @@ 

How to fix violations

Configure severity

Via ruleset file

-

Configure the severity per project, for more info see MSDN.

+

Configure the severity per project, for more info see +MSDN.

Via .editorconfig file

# NUnit2010: Use EqualConstraint for better assertion messages in case of failure
 dotnet_diagnostic.NUnit2010.severity = chosenSeverity
diff --git a/articles/nunit-analyzers/NUnit2011.html b/articles/nunit-analyzers/NUnit2011.html
index 0e4efb74c..2a3a626b8 100644
--- a/articles/nunit-analyzers/NUnit2011.html
+++ b/articles/nunit-analyzers/NUnit2011.html
@@ -113,7 +113,7 @@ 

Code -StringConstraintUsageAnalyzer +StringConstraintUsageAnalyzer @@ -128,11 +128,11 @@

Motivation

{ string actual = "..."; string expected = "..."; - Assert.True(actual.Contains(expected)); + ClassicAssert.True(actual.Contains(expected)); }

How to fix violations

-

The analyzer comes with a code fix that will replace Assert.True(actual.Contains(expected)) with +

The analyzer comes with a code fix that will replace ClassicAssert.True(actual.Contains(expected)) with Assert.That(actual, Does.Contain(expected)). So the code block above will be changed into

[Test]
 public void Test()
@@ -145,7 +145,8 @@ 

How to fix violations

Configure severity

Via ruleset file

-

Configure the severity per project, for more info see MSDN.

+

Configure the severity per project, for more info see +MSDN.

Via .editorconfig file

# NUnit2011: Use ContainsConstraint for better assertion messages in case of failure
 dotnet_diagnostic.NUnit2011.severity = chosenSeverity
diff --git a/articles/nunit-analyzers/NUnit2012.html b/articles/nunit-analyzers/NUnit2012.html
index 88ee072a0..0817264b2 100644
--- a/articles/nunit-analyzers/NUnit2012.html
+++ b/articles/nunit-analyzers/NUnit2012.html
@@ -113,7 +113,7 @@ 

Code -StringConstraintUsageAnalyzer +StringConstraintUsageAnalyzer @@ -128,11 +128,11 @@

Motivation

{ string actual = "..."; string expected = "..."; - Assert.True(actual.StartsWith(expected)); + ClassicAssert.True(actual.StartsWith(expected)); }

How to fix violations

-

The analyzer comes with a code fix that will replace Assert.True(actual.StartWith(expected)) with +

The analyzer comes with a code fix that will replace ClassicAssert.True(actual.StartWith(expected)) with Assert.That(actual, Does.StartWith(expected)). So the code block above will be changed into

[Test]
 public void Test()
@@ -145,7 +145,8 @@ 

How to fix violations

Configure severity

Via ruleset file

-

Configure the severity per project, for more info see MSDN.

+

Configure the severity per project, for more info see +MSDN.

Via .editorconfig file

# NUnit2012: Use StartsWithConstraint for better assertion messages in case of failure
 dotnet_diagnostic.NUnit2012.severity = chosenSeverity
diff --git a/articles/nunit-analyzers/NUnit2013.html b/articles/nunit-analyzers/NUnit2013.html
index 95af139c3..05479ea4a 100644
--- a/articles/nunit-analyzers/NUnit2013.html
+++ b/articles/nunit-analyzers/NUnit2013.html
@@ -113,7 +113,7 @@ 

Code -StringConstraintUsageAnalyzer +StringConstraintUsageAnalyzer @@ -128,11 +128,11 @@

Motivation

{ string actual = "..."; string expected = "..."; - Assert.True(actual.EndsWith(expected)); + ClassicAssert.True(actual.EndsWith(expected)); }

How to fix violations

-

The analyzer comes with a code fix that will replace Assert.True(actual.EndsWith(expected)) with +

The analyzer comes with a code fix that will replace ClassicAssert.True(actual.EndsWith(expected)) with Assert.That(actual, Does.EndWith(expected)). So the code block above will be changed into

[Test]
 public void Test()
@@ -147,7 +147,8 @@ 

How to fix violations

### Via ruleset file -Configure the severity per project, for more info see [MSDN](https://learn.microsoft.com/en-us/visualstudio/code-quality/using-rule-sets-to-group-code-analysis-rules?view=vs-2022). +Configure the severity per project, for more info see +[MSDN](https://learn.microsoft.com/en-us/visualstudio/code-quality/using-rule-sets-to-group-code-analysis-rules?view=vs-2022). ### Via .editorconfig file diff --git a/articles/nunit-analyzers/NUnit2014.html b/articles/nunit-analyzers/NUnit2014.html index 2d2d979f2..96177991b 100644 --- a/articles/nunit-analyzers/NUnit2014.html +++ b/articles/nunit-analyzers/NUnit2014.html @@ -113,7 +113,7 @@

Code -SomeItemsConstraintUsageAnalyzer +SomeItemsConstraintUsageAnalyzer @@ -128,11 +128,11 @@

Motivation

{ var actual = new List<int> {1,2,3}; int expected = 1; - Assert.True(actual.Contains(expected)); + ClassicAssert.True(actual.Contains(expected)); }

How to fix violations

-

The analyzer comes with a code fix that will replace Assert.True(actual.Contains(expected)) with +

The analyzer comes with a code fix that will replace ClassicAssert.True(actual.Contains(expected)) with Assert.That(actual, Does.Contain(expected)). So the code block above will be changed into

[Test]
 public void Test()
@@ -145,7 +145,8 @@ 

How to fix violations

Configure severity

Via ruleset file

-

Configure the severity per project, for more info see MSDN.

+

Configure the severity per project, for more info see +MSDN.

Via .editorconfig file

# NUnit2014: Use SomeItemsConstraint for better assertion messages in case of failure
 dotnet_diagnostic.NUnit2014.severity = chosenSeverity
diff --git a/articles/nunit-analyzers/NUnit2015.html b/articles/nunit-analyzers/NUnit2015.html
index 8a28750ff..eb3460314 100644
--- a/articles/nunit-analyzers/NUnit2015.html
+++ b/articles/nunit-analyzers/NUnit2015.html
@@ -86,7 +86,7 @@
             

NUnit2015

-

Consider using Assert.That(actual, Is.SameAs(expected)) instead of Assert.AreSame(expected, actual)

+

Consider using Assert.That(actual, Is.SameAs(expected)) instead of ClassicAssert.AreSame(expected, actual)

@@ -113,24 +113,25 @@

Code -

+
ClassicModelAssertUsageAnalyzerClassicModelAssertUsageAnalyzer

Description

Consider using the constraint model, Assert.That(actual, Is.SameAs(expected)), instead of the classic model, -Assert.AreSame(expected, actual).

+ClassicAssert.AreSame(expected, actual).

Motivation

-

The assert Assert.AreSame from the classic Assert model makes it easy to confuse the expected and the actual -argument, so this analyzer marks usages of Assert.AreSame.

+

The assert ClassicAssert.AreSame from the classic Assert model makes it easy to confuse the expected and the +actual argument, so this analyzer marks usages of ClassicAssert.AreSame.

[Test]
 public void Test()
 {
-    Assert.AreSame(expected, actual);
+    ClassicAssert.AreSame(expected, actual);
 }
 

How to fix violations

-

The analyzer comes with a code fix that will replace Assert.AreSame(expected, actual) with Assert.That(actual, Is.SameAs(expected)). So the code block above will be changed into.

+

The analyzer comes with a code fix that will replace ClassicAssert.AreSame(expected, actual) with +Assert.That(actual, Is.SameAs(expected)). So the code block above will be changed into.

[Test]
 public void Test()
 {
@@ -143,21 +144,21 @@ 

Via ruleset file

Configure the severity per project, for more info see MSDN.

Via .editorconfig file

-
# NUnit2015: Consider using Assert.That(actual, Is.SameAs(expected)) instead of Assert.AreSame(expected, actual)
+
# NUnit2015: Consider using Assert.That(actual, Is.SameAs(expected)) instead of ClassicAssert.AreSame(expected, actual)
 dotnet_diagnostic.NUnit2015.severity = chosenSeverity
 

where chosenSeverity can be one of none, silent, suggestion, warning, or error.

Via #pragma directive

-
#pragma warning disable NUnit2015 // Consider using Assert.That(actual, Is.SameAs(expected)) instead of Assert.AreSame(expected, actual)
+
#pragma warning disable NUnit2015 // Consider using Assert.That(actual, Is.SameAs(expected)) instead of ClassicAssert.AreSame(expected, actual)
 Code violating the rule here
-#pragma warning restore NUnit2015 // Consider using Assert.That(actual, Is.SameAs(expected)) instead of Assert.AreSame(expected, actual)
+#pragma warning restore NUnit2015 // Consider using Assert.That(actual, Is.SameAs(expected)) instead of ClassicAssert.AreSame(expected, actual)
 

Or put this at the top of the file to disable all instances.

-
#pragma warning disable NUnit2015 // Consider using Assert.That(actual, Is.SameAs(expected)) instead of Assert.AreSame(expected, actual)
+
#pragma warning disable NUnit2015 // Consider using Assert.That(actual, Is.SameAs(expected)) instead of ClassicAssert.AreSame(expected, actual)
 

Via attribute [SuppressMessage]

[System.Diagnostics.CodeAnalysis.SuppressMessage("Assertion",
-    "NUnit2015:Consider using Assert.That(actual, Is.SameAs(expected)) instead of Assert.AreSame(expected, actual)",
+    "NUnit2015:Consider using Assert.That(actual, Is.SameAs(expected)) instead of ClassicAssert.AreSame(expected, actual)",
     Justification = "Reason...")]
 
diff --git a/articles/nunit-analyzers/NUnit2016.html b/articles/nunit-analyzers/NUnit2016.html index 95c3f12e9..a84c406d3 100644 --- a/articles/nunit-analyzers/NUnit2016.html +++ b/articles/nunit-analyzers/NUnit2016.html @@ -86,7 +86,7 @@

NUnit2016

-

Consider using Assert.That(expr, Is.Null) instead of Assert.Null(expr)

+

Consider using Assert.That(expr, Is.Null) instead of ClassicAssert.Null(expr)

@@ -113,24 +113,25 @@

Consider

- +
CodeClassicModelAssertUsageAnalyzerClassicModelAssertUsageAnalyzer

Description

-

Consider using the constraint model, Assert.That(expr, Is.Null), instead of the classic model, Assert.Null(expr).

+

Consider using the constraint model, Assert.That(expr, Is.Null), instead of the classic model, +ClassicAssert.Null(expr).

Motivation

The classic Assert model contains less flexibility than the constraint model, -so this analyzer marks usages of Assert.Null from the classic Assert model.

+so this analyzer marks usages of ClassicAssert.Null from the classic Assert model.

[Test]
 public void Test()
 {
     object obj = null;
-    Assert.Null(obj);
+    ClassicAssert.Null(obj);
 }
 

How to fix violations

-

The analyzer comes with a code fix that will replace Assert.Null(expression) with +

The analyzer comes with a code fix that will replace ClassicAssert.Null(expression) with Assert.That(expression, Is.Null). So the code block above will be changed into.

[Test]
 public void Test()
@@ -142,23 +143,24 @@ 

How to fix violations

Configure severity

Via ruleset file

-

Configure the severity per project, for more info see MSDN.

+

Configure the severity per project, for more info see +MSDN.

Via .editorconfig file

-
# NUnit2016: Consider using Assert.That(expr, Is.Null) instead of Assert.Null(expr)
+
# NUnit2016: Consider using Assert.That(expr, Is.Null) instead of ClassicAssert.Null(expr)
 dotnet_diagnostic.NUnit2016.severity = chosenSeverity
 

where chosenSeverity can be one of none, silent, suggestion, warning, or error.

Via #pragma directive

-
#pragma warning disable NUnit2016 // Consider using Assert.That(expr, Is.Null) instead of Assert.Null(expr)
+
#pragma warning disable NUnit2016 // Consider using Assert.That(expr, Is.Null) instead of ClassicAssert.Null(expr)
 Code violating the rule here
-#pragma warning restore NUnit2016 // Consider using Assert.That(expr, Is.Null) instead of Assert.Null(expr)
+#pragma warning restore NUnit2016 // Consider using Assert.That(expr, Is.Null) instead of ClassicAssert.Null(expr)
 

Or put this at the top of the file to disable all instances.

-
#pragma warning disable NUnit2016 // Consider using Assert.That(expr, Is.Null) instead of Assert.Null(expr)
+
#pragma warning disable NUnit2016 // Consider using Assert.That(expr, Is.Null) instead of ClassicAssert.Null(expr)
 

Via attribute [SuppressMessage]

[System.Diagnostics.CodeAnalysis.SuppressMessage("Assertion",
-    "NUnit2016:Consider using Assert.That(expr, Is.Null) instead of Assert.Null(expr)",
+    "NUnit2016:Consider using Assert.That(expr, Is.Null) instead of ClassicAssert.Null(expr)",
     Justification = "Reason...")]
 
diff --git a/articles/nunit-analyzers/NUnit2017.html b/articles/nunit-analyzers/NUnit2017.html index ff55d6a70..dd43a665f 100644 --- a/articles/nunit-analyzers/NUnit2017.html +++ b/articles/nunit-analyzers/NUnit2017.html @@ -86,7 +86,7 @@

NUnit2017

-

Consider using Assert.That(expr, Is.Null) instead of Assert.IsNull(expr)

+

Consider using Assert.That(expr, Is.Null) instead of ClassicAssert.IsNull(expr)

@@ -113,24 +113,25 @@

Consid

- +
CodeClassicModelAssertUsageAnalyzerClassicModelAssertUsageAnalyzer

Description

-

Consider using the constraint model, Assert.That(expr, Is.Null), instead of the classic model, Assert.IsNull(expr).

+

Consider using the constraint model, Assert.That(expr, Is.Null), instead of the classic model, +ClassicAssert.IsNull(expr).

Motivation

The classic Assert model contains less flexibility than the constraint model, -so this analyzer marks usages of Assert.IsNull from the classic Assert model.

+so this analyzer marks usages of ClassicAssert.IsNull from the classic Assert model.

[Test]
 public void Test()
 {
     object obj = null;
-    Assert.IsNull(obj);
+    ClassicAssert.IsNull(obj);
 }
 

How to fix violations

-

The analyzer comes with a code fix that will replace Assert.IsNull(expression) with +

The analyzer comes with a code fix that will replace ClassicAssert.IsNull(expression) with Assert.That(expression, Is.Null). So the code block above will be changed into.

[Test]
 public void Test()
@@ -142,23 +143,24 @@ 

How to fix violations

Configure severity

Via ruleset file

-

Configure the severity per project, for more info see MSDN.

+

Configure the severity per project, for more info see +MSDN.

Via .editorconfig file

-
# NUnit2017: Consider using Assert.That(expr, Is.Null) instead of Assert.IsNull(expr)
+
# NUnit2017: Consider using Assert.That(expr, Is.Null) instead of ClassicAssert.IsNull(expr)
 dotnet_diagnostic.NUnit2017.severity = chosenSeverity
 

where chosenSeverity can be one of none, silent, suggestion, warning, or error.

Via #pragma directive

-
#pragma warning disable NUnit2017 // Consider using Assert.That(expr, Is.Null) instead of Assert.IsNull(expr)
+
#pragma warning disable NUnit2017 // Consider using Assert.That(expr, Is.Null) instead of ClassicAssert.IsNull(expr)
 Code violating the rule here
-#pragma warning restore NUnit2017 // Consider using Assert.That(expr, Is.Null) instead of Assert.IsNull(expr)
+#pragma warning restore NUnit2017 // Consider using Assert.That(expr, Is.Null) instead of ClassicAssert.IsNull(expr)
 

Or put this at the top of the file to disable all instances.

-
#pragma warning disable NUnit2017 // Consider using Assert.That(expr, Is.Null) instead of Assert.IsNull(expr)
+
#pragma warning disable NUnit2017 // Consider using Assert.That(expr, Is.Null) instead of ClassicAssert.IsNull(expr)
 

Via attribute [SuppressMessage]

[System.Diagnostics.CodeAnalysis.SuppressMessage("Assertion",
-    "NUnit2017:Consider using Assert.That(expr, Is.Null) instead of Assert.IsNull(expr)",
+    "NUnit2017:Consider using Assert.That(expr, Is.Null) instead of ClassicAssert.IsNull(expr)",
     Justification = "Reason...")]
 
diff --git a/articles/nunit-analyzers/NUnit2018.html b/articles/nunit-analyzers/NUnit2018.html index 16431c837..f4b6f3ee1 100644 --- a/articles/nunit-analyzers/NUnit2018.html +++ b/articles/nunit-analyzers/NUnit2018.html @@ -86,7 +86,7 @@

NUnit2018

-

Consider using Assert.That(expr, Is.Not.Null) instead of Assert.NotNull(expr)

+

Consider using Assert.That(expr, Is.Not.Null) instead of ClassicAssert.NotNull(expr)

@@ -113,24 +113,25 @@

Co

- +
CodeClassicModelAssertUsageAnalyzerClassicModelAssertUsageAnalyzer

Description

-

Consider using the constraint model, Assert.That(expr, Is.Not.Null), instead of the classic model, Assert.NotNull(expr).

+

Consider using the constraint model, Assert.That(expr, Is.Not.Null), instead of the classic model, +ClassicAssert.NotNull(expr).

Motivation

The classic Assert model contains less flexibility than the constraint model, -so this analyzer marks usages of Assert.NotNull from the classic Assert model.

+so this analyzer marks usages of ClassicAssert.NotNull from the classic Assert model.

[Test]
 public void Test()
 {
     object obj = null;
-    Assert.NotNull(obj);
+    ClassicAssert.NotNull(obj);
 }
 

How to fix violations

-

The analyzer comes with a code fix that will replace Assert.NotNull(expression) with +

The analyzer comes with a code fix that will replace ClassicAssert.NotNull(expression) with Assert.That(expression, Is.Not.Null). So the code block above will be changed into.

[Test]
 public void Test()
@@ -142,23 +143,24 @@ 

How to fix violations

Configure severity

Via ruleset file

-

Configure the severity per project, for more info see MSDN.

+

Configure the severity per project, for more info see +MSDN.

Via .editorconfig file

-
# NUnit2018: Consider using Assert.That(expr, Is.Not.Null) instead of Assert.NotNull(expr)
+
# NUnit2018: Consider using Assert.That(expr, Is.Not.Null) instead of ClassicAssert.NotNull(expr)
 dotnet_diagnostic.NUnit2018.severity = chosenSeverity
 

where chosenSeverity can be one of none, silent, suggestion, warning, or error.

Via #pragma directive

-
#pragma warning disable NUnit2018 // Consider using Assert.That(expr, Is.Not.Null) instead of Assert.NotNull(expr)
+
#pragma warning disable NUnit2018 // Consider using Assert.That(expr, Is.Not.Null) instead of ClassicAssert.NotNull(expr)
 Code violating the rule here
-#pragma warning restore NUnit2018 // Consider using Assert.That(expr, Is.Not.Null) instead of Assert.NotNull(expr)
+#pragma warning restore NUnit2018 // Consider using Assert.That(expr, Is.Not.Null) instead of ClassicAssert.NotNull(expr)
 

Or put this at the top of the file to disable all instances.

-
#pragma warning disable NUnit2018 // Consider using Assert.That(expr, Is.Not.Null) instead of Assert.NotNull(expr)
+
#pragma warning disable NUnit2018 // Consider using Assert.That(expr, Is.Not.Null) instead of ClassicAssert.NotNull(expr)
 

Via attribute [SuppressMessage]

[System.Diagnostics.CodeAnalysis.SuppressMessage("Assertion",
-    "NUnit2018:Consider using Assert.That(expr, Is.Not.Null) instead of Assert.NotNull(expr)",
+    "NUnit2018:Consider using Assert.That(expr, Is.Not.Null) instead of ClassicAssert.NotNull(expr)",
     Justification = "Reason...")]
 
diff --git a/articles/nunit-analyzers/NUnit2019.html b/articles/nunit-analyzers/NUnit2019.html index 19ba40e13..5e35598ab 100644 --- a/articles/nunit-analyzers/NUnit2019.html +++ b/articles/nunit-analyzers/NUnit2019.html @@ -86,7 +86,7 @@

NUnit2019

-

Consider using Assert.That(expr, Is.Not.Null) instead of Assert.IsNotNull(expr)

+

Consider using Assert.That(expr, Is.Not.Null) instead of ClassicAssert.IsNotNull(expr)

@@ -113,24 +113,25 @@

- +
CodeClassicModelAssertUsageAnalyzerClassicModelAssertUsageAnalyzer

Description

-

Consider using the constraint model, Assert.That(expr, Is.Not.Null), instead of the classic model, Assert.IsNotNull(expr).

+

Consider using the constraint model, Assert.That(expr, Is.Not.Null), instead of the classic model, +ClassicAssert.IsNotNull(expr).

Motivation

The classic Assert model contains less flexibility than the constraint model, -so this analyzer marks usages of Assert.IsNotNull from the classic Assert model.

+so this analyzer marks usages of ClassicAssert.IsNotNull from the classic Assert model.

[Test]
 public void Test()
 {
     object obj = null;
-    Assert.IsNotNull(obj);
+    ClassicAssert.IsNotNull(obj);
 }
 

How to fix violations

-

The analyzer comes with a code fix that will replace Assert.IsNotNull(expression) with +

The analyzer comes with a code fix that will replace ClassicAssert.IsNotNull(expression) with Assert.That(expression, Is.Not.Null). So the code block above will be changed into.

[Test]
 public void Test()
@@ -142,23 +143,24 @@ 

How to fix violations

Configure severity

Via ruleset file

-

Configure the severity per project, for more info see MSDN.

+

Configure the severity per project, for more info see +MSDN.

Via .editorconfig file

-
# NUnit2019: Consider using Assert.That(expr, Is.Not.Null) instead of Assert.IsNotNull(expr)
+
# NUnit2019: Consider using Assert.That(expr, Is.Not.Null) instead of ClassicAssert.IsNotNull(expr)
 dotnet_diagnostic.NUnit2019.severity = chosenSeverity
 

where chosenSeverity can be one of none, silent, suggestion, warning, or error.

Via #pragma directive

-
#pragma warning disable NUnit2019 // Consider using Assert.That(expr, Is.Not.Null) instead of Assert.IsNotNull(expr)
+
#pragma warning disable NUnit2019 // Consider using Assert.That(expr, Is.Not.Null) instead of ClassicAssert.IsNotNull(expr)
 Code violating the rule here
-#pragma warning restore NUnit2019 // Consider using Assert.That(expr, Is.Not.Null) instead of Assert.IsNotNull(expr)
+#pragma warning restore NUnit2019 // Consider using Assert.That(expr, Is.Not.Null) instead of ClassicAssert.IsNotNull(expr)
 

Or put this at the top of the file to disable all instances.

-
#pragma warning disable NUnit2019 // Consider using Assert.That(expr, Is.Not.Null) instead of Assert.IsNotNull(expr)
+
#pragma warning disable NUnit2019 // Consider using Assert.That(expr, Is.Not.Null) instead of ClassicAssert.IsNotNull(expr)
 

Via attribute [SuppressMessage]

[System.Diagnostics.CodeAnalysis.SuppressMessage("Assertion",
-    "NUnit2019:Consider using Assert.That(expr, Is.Not.Null) instead of Assert.IsNotNull(expr)",
+    "NUnit2019:Consider using Assert.That(expr, Is.Not.Null) instead of ClassicAssert.IsNotNull(expr)",
     Justification = "Reason...")]
 
diff --git a/articles/nunit-analyzers/NUnit2020.html b/articles/nunit-analyzers/NUnit2020.html index d14f153f9..c217e4cfe 100644 --- a/articles/nunit-analyzers/NUnit2020.html +++ b/articles/nunit-analyzers/NUnit2020.html @@ -113,7 +113,7 @@

Incompatible types for SameAs Code -SameAsIncompatibleTypesAnalyzer +SameAsIncompatibleTypesAnalyzer @@ -134,7 +134,8 @@

How to fix violations

Configure severity

Via ruleset file

-

Configure the severity per project, for more info see MSDN.

+

Configure the severity per project, for more info see +MSDN.

Via .editorconfig file

# NUnit2020: Incompatible types for SameAs constraint
 dotnet_diagnostic.NUnit2020.severity = chosenSeverity
diff --git a/articles/nunit-analyzers/NUnit2021.html b/articles/nunit-analyzers/NUnit2021.html
index a88fb2da3..8c503f691 100644
--- a/articles/nunit-analyzers/NUnit2021.html
+++ b/articles/nunit-analyzers/NUnit2021.html
@@ -113,7 +113,7 @@ 

Incompatible types for EqualT Code -EqualToIncompatibleTypesAnalyzer +EqualToIncompatibleTypesAnalyzer @@ -128,13 +128,15 @@

Motivation

Assert.That(foo, Is.EqualTo(bar));
-

There is no way that instances of types Foo and Bar could be considered equal, therefore such assertion will always fail.

+

There is no way that instances of types Foo and Bar could be considered equal, therefore such assertion will always +fail.

How to fix violations

Fix your assertion (i.e. fix actual or expected value, or choose another constraint).

Configure severity

Via ruleset file

-

Configure the severity per project, for more info see MSDN.

+

Configure the severity per project, for more info see +MSDN.

Via .editorconfig file

# NUnit2021: Incompatible types for EqualTo constraint
 dotnet_diagnostic.NUnit2021.severity = chosenSeverity
diff --git a/articles/nunit-analyzers/NUnit2022.html b/articles/nunit-analyzers/NUnit2022.html
index 8ea90e798..1550382b6 100644
--- a/articles/nunit-analyzers/NUnit2022.html
+++ b/articles/nunit-analyzers/NUnit2022.html
@@ -113,7 +113,7 @@ 

Missing property required for Code -MissingPropertyAnalyzer +MissingPropertyAnalyzer @@ -136,7 +136,8 @@

How to fix violations

Configure severity

Via ruleset file

-

Configure the severity per project, for more info see MSDN.

+

Configure the severity per project, for more info see +MSDN.

Via .editorconfig file

# NUnit2022: Missing property required for constraint
 dotnet_diagnostic.NUnit2022.severity = chosenSeverity
diff --git a/articles/nunit-analyzers/NUnit2023.html b/articles/nunit-analyzers/NUnit2023.html
index 52cc47df4..00c0c39d5 100644
--- a/articles/nunit-analyzers/NUnit2023.html
+++ b/articles/nunit-analyzers/NUnit2023.html
@@ -113,7 +113,7 @@ 

Invalid NullConstraint usage

Code -NullConstraintUsageAnalyzer +NullConstraintUsageAnalyzer diff --git a/articles/nunit-analyzers/NUnit2024.html b/articles/nunit-analyzers/NUnit2024.html index c18841a9c..e13e4a6ed 100644 --- a/articles/nunit-analyzers/NUnit2024.html +++ b/articles/nunit-analyzers/NUnit2024.html @@ -113,7 +113,7 @@

Wrong actual type used wi Code -StringConstraintWrongActualTypeAnalyzer +StringConstraintWrongActualTypeAnalyzer @@ -126,7 +126,8 @@

How to fix violations

Configure severity

Via ruleset file

-

Configure the severity per project, for more info see MSDN.

+

Configure the severity per project, for more info see +MSDN.

Via .editorconfig file

# NUnit2024: Wrong actual type used with String Constraint
 dotnet_diagnostic.NUnit2024.severity = chosenSeverity
diff --git a/articles/nunit-analyzers/NUnit2025.html b/articles/nunit-analyzers/NUnit2025.html
index be036855d..87c1ff961 100644
--- a/articles/nunit-analyzers/NUnit2025.html
+++ b/articles/nunit-analyzers/NUnit2025.html
@@ -101,11 +101,11 @@ 

Wrong actual type used w Severity -Error +Hidden Enabled -True +False Category @@ -113,7 +113,7 @@

Wrong actual type used w Code -ContainsConstraintWrongActualTypeAnalyzer +ContainsConstraintWrongActualTypeAnalyzer diff --git a/articles/nunit-analyzers/NUnit2026.html b/articles/nunit-analyzers/NUnit2026.html index 1e57ef655..03da385d8 100644 --- a/articles/nunit-analyzers/NUnit2026.html +++ b/articles/nunit-analyzers/NUnit2026.html @@ -113,7 +113,7 @@

Code -SomeItemsIncompatibleTypesAnalyzer +SomeItemsIncompatibleTypesAnalyzer diff --git a/articles/nunit-analyzers/NUnit2027.html b/articles/nunit-analyzers/NUnit2027.html index b88987d92..f9b80c711 100644 --- a/articles/nunit-analyzers/NUnit2027.html +++ b/articles/nunit-analyzers/NUnit2027.html @@ -86,7 +86,7 @@

NUnit2027

-

Consider using Assert.That(actual, Is.GreaterThan(expected)) instead of Assert.Greater(actual, expected)

+

Consider using Assert.That(actual, Is.GreaterThan(expected)) instead of ClassicAssert.Greater(actual, expected)

@@ -113,24 +113,25 @@

Code -

+
ClassicModelAssertUsageAnalyzerClassicModelAssertUsageAnalyzer

Description

Consider using the constraint model, Assert.That(actual, Is.GreaterThan(expected)), instead of the classic model, -Assert.Greater(actual, expected).

+ClassicAssert.Greater(actual, expected).

Motivation

-

The assert Assert.Greater from the classic Assert model makes it easy to confuse the expected and the actual -argument, so this analyzer marks usages of Assert.Greater.

+

The assert ClassicAssert.Greater from the classic Assert model makes it easy to confuse the expected and the actual +argument, so this analyzer marks usages of ClassicAssert.Greater.

[Test]
 public void Test()
 {
-    Assert.Greater(actual, expected);
+    ClassicAssert.Greater(actual, expected);
 }
 

How to fix violations

-

The analyzer comes with a code fix that will replace Assert.Greater(actual, expected) with Assert.That(actual, Is.GreaterThan(expected)). So the code block above will be changed into.

+

The analyzer comes with a code fix that will replace ClassicAssert.Greater(actual, expected) with +Assert.That(actual, Is.GreaterThan(expected)). So the code block above will be changed into.

[Test]
 public void Test()
 {
@@ -143,21 +144,21 @@ 

Via ruleset file

Configure the severity per project, for more info see MSDN.

Via .editorconfig file

-
# NUnit2027: Consider using Assert.That(actual, Is.GreaterThan(expected)) instead of Assert.Greater(actual, expected)
+
# NUnit2027: Consider using Assert.That(actual, Is.GreaterThan(expected)) instead of ClassicAssert.Greater(actual, expected)
 dotnet_diagnostic.NUnit2027.severity = chosenSeverity
 

where chosenSeverity can be one of none, silent, suggestion, warning, or error.

Via #pragma directive

-
#pragma warning disable NUnit2027 // Consider using Assert.That(actual, Is.GreaterThan(expected)) instead of Assert.Greater(actual, expected)
+
#pragma warning disable NUnit2027 // Consider using Assert.That(actual, Is.GreaterThan(expected)) instead of ClassicAssert.Greater(actual, expected)
 Code violating the rule here
-#pragma warning restore NUnit2027 // Consider using Assert.That(actual, Is.GreaterThan(expected)) instead of Assert.Greater(actual, expected)
+#pragma warning restore NUnit2027 // Consider using Assert.That(actual, Is.GreaterThan(expected)) instead of ClassicAssert.Greater(actual, expected)
 

Or put this at the top of the file to disable all instances.

-
#pragma warning disable NUnit2027 // Consider using Assert.That(actual, Is.GreaterThan(expected)) instead of Assert.Greater(actual, expected)
+
#pragma warning disable NUnit2027 // Consider using Assert.That(actual, Is.GreaterThan(expected)) instead of ClassicAssert.Greater(actual, expected)
 

Via attribute [SuppressMessage]

[System.Diagnostics.CodeAnalysis.SuppressMessage("Assertion",
-    "NUnit2027:Consider using Assert.That(actual, Is.GreaterThan(expected)) instead of Assert.Greater(actual, expected)",
+    "NUnit2027:Consider using Assert.That(actual, Is.GreaterThan(expected)) instead of ClassicAssert.Greater(actual, expected)",
     Justification = "Reason...")]
 
diff --git a/articles/nunit-analyzers/NUnit2028.html b/articles/nunit-analyzers/NUnit2028.html index 2749db6f2..eff40267a 100644 --- a/articles/nunit-analyzers/NUnit2028.html +++ b/articles/nunit-analyzers/NUnit2028.html @@ -86,7 +86,8 @@

NUnit2028

-

Consider using Assert.That(actual, Is.GreaterThanOrEqualTo(expected)) instead of Assert.GreaterOrEqual(actual, expected)

+ +

Consider using Assert.That(actual, Is.GreaterThanOrEqualTo(expected)) instead of ClassicAssert.GreaterOrEqual(actual, expected)

@@ -113,24 +114,25 @@

Code -

+
ClassicModelAssertUsageAnalyzerClassicModelAssertUsageAnalyzer

Description

Consider using the constraint model, Assert.That(actual, Is.GreaterThanOrEqualTo(expected)), instead of the classic -model, Assert.GreaterOrEqual(actual, expected).

+model, ClassicAssert.GreaterOrEqual(actual, expected).

Motivation

-

The assert Assert.GreaterOrEqual from the classic Assert model makes it easy to confuse the expected and the -actual argument, so this analyzer marks usages of Assert.GreaterOrEqual.

+

The assert ClassicAssert.GreaterOrEqual from the classic Assert model makes it easy to confuse the expected and the +actual argument, so this analyzer marks usages of ClassicAssert.GreaterOrEqual.

[Test]
 public void Test()
 {
-    Assert.GreaterOrEqual(actual, expected);
+    ClassicAssert.GreaterOrEqual(actual, expected);
 }
 

How to fix violations

-

The analyzer comes with a code fix that will replace Assert.GreaterOrEqual(actual, expected) with Assert.That(actual, Is.GreaterThanOrEqualTo(expected)). So the code block above will be changed into.

+

The analyzer comes with a code fix that will replace ClassicAssert.GreaterOrEqual(actual, expected) with +Assert.That(actual, Is.GreaterThanOrEqualTo(expected)). So the code block above will be changed into.

[Test]
 public void Test()
 {
@@ -143,21 +145,21 @@ 

Via ruleset file

Configure the severity per project, for more info see MSDN.

Via .editorconfig file

-
# NUnit2028: Consider using Assert.That(actual, Is.GreaterThanOrEqualTo(expected)) instead of Assert.GreaterOrEqual(actual, expected)
+
# NUnit2028: Consider using Assert.That(actual, Is.GreaterThanOrEqualTo(expected)) instead of ClassicAssert.GreaterOrEqual(actual, expected)
 dotnet_diagnostic.NUnit2028.severity = chosenSeverity
 

where chosenSeverity can be one of none, silent, suggestion, warning, or error.

Via #pragma directive

-
#pragma warning disable NUnit2028 // Consider using Assert.That(actual, Is.GreaterThanOrEqualTo(expected)) instead of Assert.GreaterOrEqual(actual, expected)
+
#pragma warning disable NUnit2028 // Consider using Assert.That(actual, Is.GreaterThanOrEqualTo(expected)) instead of ClassicAssert.GreaterOrEqual(actual, expected)
 Code violating the rule here
-#pragma warning restore NUnit2028 // Consider using Assert.That(actual, Is.GreaterThanOrEqualTo(expected)) instead of Assert.GreaterOrEqual(actual, expected)
+#pragma warning restore NUnit2028 // Consider using Assert.That(actual, Is.GreaterThanOrEqualTo(expected)) instead of ClassicAssert.GreaterOrEqual(actual, expected)
 

Or put this at the top of the file to disable all instances.

-
#pragma warning disable NUnit2028 // Consider using Assert.That(actual, Is.GreaterThanOrEqualTo(expected)) instead of Assert.GreaterOrEqual(actual, expected)
+
#pragma warning disable NUnit2028 // Consider using Assert.That(actual, Is.GreaterThanOrEqualTo(expected)) instead of ClassicAssert.GreaterOrEqual(actual, expected)
 

Via attribute [SuppressMessage]

[System.Diagnostics.CodeAnalysis.SuppressMessage("Assertion",
-    "NUnit2028:Consider using Assert.That(actual, Is.GreaterThanOrEqualTo(expected)) instead of Assert.GreaterOrEqual(actual, expected)",
+    "NUnit2028:Consider using Assert.That(actual, Is.GreaterThanOrEqualTo(expected)) instead of ClassicAssert.GreaterOrEqual(actual, expected)",
     Justification = "Reason...")]
 
diff --git a/articles/nunit-analyzers/NUnit2029.html b/articles/nunit-analyzers/NUnit2029.html index 80baf9594..a377b1cce 100644 --- a/articles/nunit-analyzers/NUnit2029.html +++ b/articles/nunit-analyzers/NUnit2029.html @@ -86,7 +86,7 @@

NUnit2029

-

Consider using Assert.That(actual, Is.LessThan(expected)) instead of Assert.Less(actual, expected)

+

Consider using Assert.That(actual, Is.LessThan(expected)) instead of ClassicAssert.Less(actual, expected)

@@ -113,24 +113,25 @@

Code -

+
ClassicModelAssertUsageAnalyzerClassicModelAssertUsageAnalyzer

Description

Consider using the constraint model, Assert.That(actual, Is.LessThan(expected)), instead of the classic model, -Assert.Less(actual, expected).

+ClassicAssert.Less(actual, expected).

Motivation

-

The assert Assert.Less from the classic Assert model makes it easy to confuse the expected and the actual -argument, so this analyzer marks usages of Assert.Less.

+

The assert ClassicAssert.Less from the classic Assert model makes it easy to confuse the expected and the actual +argument, so this analyzer marks usages of ClassicAssert.Less.

[Test]
 public void Test()
 {
-    Assert.Less(actual, expected);
+    ClassicAssert.Less(actual, expected);
 }
 

How to fix violations

-

The analyzer comes with a code fix that will replace Assert.Less(actual, expected) with Assert.That(actual, Is.LessThan(expected)). So the code block above will be changed into.

+

The analyzer comes with a code fix that will replace ClassicAssert.Less(actual, expected) with +Assert.That(actual, Is.LessThan(expected)). So the code block above will be changed into.

[Test]
 public void Test()
 {
@@ -143,21 +144,21 @@ 

Via ruleset file

Configure the severity per project, for more info see MSDN.

Via .editorconfig file

-
# NUnit2029: Consider using Assert.That(actual, Is.LessThan(expected)) instead of Assert.Less(actual, expected)
+
# NUnit2029: Consider using Assert.That(actual, Is.LessThan(expected)) instead of ClassicAssert.Less(actual, expected)
 dotnet_diagnostic.NUnit2029.severity = chosenSeverity
 

where chosenSeverity can be one of none, silent, suggestion, warning, or error.

Via #pragma directive

-
#pragma warning disable NUnit2029 // Consider using Assert.That(actual, Is.LessThan(expected)) instead of Assert.Less(actual, expected)
+
#pragma warning disable NUnit2029 // Consider using Assert.That(actual, Is.LessThan(expected)) instead of ClassicAssert.Less(actual, expected)
 Code violating the rule here
-#pragma warning restore NUnit2029 // Consider using Assert.That(actual, Is.LessThan(expected)) instead of Assert.Less(actual, expected)
+#pragma warning restore NUnit2029 // Consider using Assert.That(actual, Is.LessThan(expected)) instead of ClassicAssert.Less(actual, expected)
 

Or put this at the top of the file to disable all instances.

-
#pragma warning disable NUnit2029 // Consider using Assert.That(actual, Is.LessThan(expected)) instead of Assert.Less(actual, expected)
+
#pragma warning disable NUnit2029 // Consider using Assert.That(actual, Is.LessThan(expected)) instead of ClassicAssert.Less(actual, expected)
 

Via attribute [SuppressMessage]

[System.Diagnostics.CodeAnalysis.SuppressMessage("Assertion",
-    "NUnit2029:Consider using Assert.That(actual, Is.LessThan(expected)) instead of Assert.Less(actual, expected)",
+    "NUnit2029:Consider using Assert.That(actual, Is.LessThan(expected)) instead of ClassicAssert.Less(actual, expected)",
     Justification = "Reason...")]
 
diff --git a/articles/nunit-analyzers/NUnit2030.html b/articles/nunit-analyzers/NUnit2030.html index 17d472b7e..fec490758 100644 --- a/articles/nunit-analyzers/NUnit2030.html +++ b/articles/nunit-analyzers/NUnit2030.html @@ -86,7 +86,7 @@

NUnit2030

-

Consider using Assert.That(actual, Is.LessThanOrEqualTo(expected)) instead of Assert.LessOrEqual(actual, expected)

+

Consider using Assert.That(actual, Is.LessThanOrEqualTo(expected)) instead of ClassicAssert.LessOrEqual(actual, expected)

@@ -113,24 +113,25 @@

Code -

+
ClassicModelAssertUsageAnalyzerClassicModelAssertUsageAnalyzer

Description

Consider using the constraint model, Assert.That(actual, Is.LessThanOrEqualTo(expected)), instead of the classic -model, Assert.LessOrEqual(actual, expected).

+model, ClassicAssert.LessOrEqual(actual, expected).

Motivation

-

The assert Assert.LessOrEqual from the classic Assert model makes it easy to confuse the expected and the actual -argument, so this analyzer marks usages of Assert.LessOrEqual.

+

The assert ClassicAssert.LessOrEqual from the classic Assert model makes it easy to confuse the expected and the +actual argument, so this analyzer marks usages of ClassicAssert.LessOrEqual.

[Test]
 public void Test()
 {
-    Assert.LessOrEqual(actual, expected);
+    ClassicAssert.LessOrEqual(actual, expected);
 }
 

How to fix violations

-

The analyzer comes with a code fix that will replace Assert.LessOrEqual(actual, expected) with Assert.That(actual, Is.LessThanOrEqualTo(expected)). So the code block above will be changed into.

+

The analyzer comes with a code fix that will replace ClassicAssert.LessOrEqual(actual, expected) with +Assert.That(actual, Is.LessThanOrEqualTo(expected)). So the code block above will be changed into.

[Test]
 public void Test()
 {
@@ -143,21 +144,21 @@ 

Via ruleset file

Configure the severity per project, for more info see MSDN.

Via .editorconfig file

-
# NUnit2030: Consider using Assert.That(actual, Is.LessThanOrEqualTo(expected)) instead of Assert.LessOrEqual(actual, expected)
+
# NUnit2030: Consider using Assert.That(actual, Is.LessThanOrEqualTo(expected)) instead of ClassicAssert.LessOrEqual(actual, expected)
 dotnet_diagnostic.NUnit2030.severity = chosenSeverity
 

where chosenSeverity can be one of none, silent, suggestion, warning, or error.

Via #pragma directive

-
#pragma warning disable NUnit2030 // Consider using Assert.That(actual, Is.LessThanOrEqualTo(expected)) instead of Assert.LessOrEqual(actual, expected)
+
#pragma warning disable NUnit2030 // Consider using Assert.That(actual, Is.LessThanOrEqualTo(expected)) instead of ClassicAssert.LessOrEqual(actual, expected)
 Code violating the rule here
-#pragma warning restore NUnit2030 // Consider using Assert.That(actual, Is.LessThanOrEqualTo(expected)) instead of Assert.LessOrEqual(actual, expected)
+#pragma warning restore NUnit2030 // Consider using Assert.That(actual, Is.LessThanOrEqualTo(expected)) instead of ClassicAssert.LessOrEqual(actual, expected)
 

Or put this at the top of the file to disable all instances.

-
#pragma warning disable NUnit2030 // Consider using Assert.That(actual, Is.LessThanOrEqualTo(expected)) instead of Assert.LessOrEqual(actual, expected)
+
#pragma warning disable NUnit2030 // Consider using Assert.That(actual, Is.LessThanOrEqualTo(expected)) instead of ClassicAssert.LessOrEqual(actual, expected)
 

Via attribute [SuppressMessage]

[System.Diagnostics.CodeAnalysis.SuppressMessage("Assertion",
-    "NUnit2030:Consider using Assert.That(actual, Is.LessThanOrEqualTo(expected)) instead of Assert.LessOrEqual(actual, expected)",
+    "NUnit2030:Consider using Assert.That(actual, Is.LessThanOrEqualTo(expected)) instead of ClassicAssert.LessOrEqual(actual, expected)",
     Justification = "Reason...")]
 
diff --git a/articles/nunit-analyzers/NUnit2031.html b/articles/nunit-analyzers/NUnit2031.html index f4ffd1ad4..71b53d0f3 100644 --- a/articles/nunit-analyzers/NUnit2031.html +++ b/articles/nunit-analyzers/NUnit2031.html @@ -86,7 +86,7 @@

NUnit2031

-

Consider using Assert.That(actual, Is.Not.SameAs(expected)) instead of Assert.AreNotSame(expected, actual)

+

Consider using Assert.That(actual, Is.Not.SameAs(expected)) instead of ClassicAssert.AreNotSame(expected, actual)

@@ -113,24 +113,25 @@

Code -

+
ClassicModelAssertUsageAnalyzerClassicModelAssertUsageAnalyzer

Description

Consider using the constraint model, Assert.That(actual, Is.Not.SameAs(expected)), instead of the classic model, -Assert.AreNotSame(expected, actual).

+ClassicAssert.AreNotSame(expected, actual).

Motivation

-

The assert Assert.AreNotSame from the classic Assert model makes it easy to confuse the expected and the actual -argument, so this analyzer marks usages of Assert.AreNotSame.

+

The assert ClassicAssert.AreNotSame from the classic Assert model makes it easy to confuse the expected and the +actual argument, so this analyzer marks usages of ClassicAssert.AreNotSame.

[Test]
 public void Test()
 {
-    Assert.AreNotSame(expected, actual);
+    ClassicAssert.AreNotSame(expected, actual);
 }
 

How to fix violations

-

The analyzer comes with a code fix that will replace Assert.AreNotSame(expected, actual) with Assert.That(actual, Is.Not.SameAs(expected)). So the code block above will be changed into.

+

The analyzer comes with a code fix that will replace ClassicAssert.AreNotSame(expected, actual) with +Assert.That(actual, Is.Not.SameAs(expected)). So the code block above will be changed into.

[Test]
 public void Test()
 {
@@ -143,21 +144,21 @@ 

Via ruleset file

Configure the severity per project, for more info see MSDN.

Via .editorconfig file

-
# NUnit2031: Consider using Assert.That(actual, Is.Not.SameAs(expected)) instead of Assert.AreNotSame(expected, actual)
+
# NUnit2031: Consider using Assert.That(actual, Is.Not.SameAs(expected)) instead of ClassicAssert.AreNotSame(expected, actual)
 dotnet_diagnostic.NUnit2031.severity = chosenSeverity
 

where chosenSeverity can be one of none, silent, suggestion, warning, or error.

Via #pragma directive

-
#pragma warning disable NUnit2031 // Consider using Assert.That(actual, Is.Not.SameAs(expected)) instead of Assert.AreNotSame(expected, actual)
+
#pragma warning disable NUnit2031 // Consider using Assert.That(actual, Is.Not.SameAs(expected)) instead of ClassicAssert.AreNotSame(expected, actual)
 Code violating the rule here
-#pragma warning restore NUnit2031 // Consider using Assert.That(actual, Is.Not.SameAs(expected)) instead of Assert.AreNotSame(expected, actual)
+#pragma warning restore NUnit2031 // Consider using Assert.That(actual, Is.Not.SameAs(expected)) instead of ClassicAssert.AreNotSame(expected, actual)
 

Or put this at the top of the file to disable all instances.

-
#pragma warning disable NUnit2031 // Consider using Assert.That(actual, Is.Not.SameAs(expected)) instead of Assert.AreNotSame(expected, actual)
+
#pragma warning disable NUnit2031 // Consider using Assert.That(actual, Is.Not.SameAs(expected)) instead of ClassicAssert.AreNotSame(expected, actual)
 

Via attribute [SuppressMessage]

[System.Diagnostics.CodeAnalysis.SuppressMessage("Assertion",
-    "NUnit2031:Consider using Assert.That(actual, Is.Not.SameAs(expected)) instead of Assert.AreNotSame(expected, actual)",
+    "NUnit2031:Consider using Assert.That(actual, Is.Not.SameAs(expected)) instead of ClassicAssert.AreNotSame(expected, actual)",
     Justification = "Reason...")]
 
diff --git a/articles/nunit-analyzers/NUnit2032.html b/articles/nunit-analyzers/NUnit2032.html index 3a1f2f9f2..69705ce8d 100644 --- a/articles/nunit-analyzers/NUnit2032.html +++ b/articles/nunit-analyzers/NUnit2032.html @@ -86,7 +86,7 @@

NUnit2032

-

Consider using Assert.That(expr, Is.Zero) instead of Assert.Zero(expr)

+

Consider using Assert.That(expr, Is.Zero) instead of ClassicAssert.Zero(expr)

@@ -113,23 +113,24 @@

Consider

- +
CodeClassicModelAssertUsageAnalyzerClassicModelAssertUsageAnalyzer

Description

-

Consider using the constraint model, Assert.That(expr, Is.Zero), instead of the classic model, Assert.Zero(expr).

+

Consider using the constraint model, Assert.That(expr, Is.Zero), instead of the classic model, +ClassicAssert.Zero(expr).

Motivation

The classic Assert model contains less flexibility than the constraint model, -so this analyzer marks usages of Assert.Zero from the classic Assert model.

+so this analyzer marks usages of ClassicAssert.Zero from the classic Assert model.

[Test]
 public void Test()
 {
-    Assert.Zero(expression);
+    ClassicAssert.Zero(expression);
 }
 

How to fix violations

-

The analyzer comes with a code fix that will replace Assert.Zero(expression) with +

The analyzer comes with a code fix that will replace ClassicAssert.Zero(expression) with Assert.That(expression, Is.Zero). So the code block above will be changed into.

[Test]
 public void Test()
@@ -140,23 +141,24 @@ 

How to fix violations

Configure severity

Via ruleset file

-

Configure the severity per project, for more info see MSDN.

+

Configure the severity per project, for more info see +MSDN.

Via .editorconfig file

-
# NUnit2032: Consider using Assert.That(expr, Is.Zero) instead of Assert.Zero(expr)
+
# NUnit2032: Consider using Assert.That(expr, Is.Zero) instead of ClassicAssert.Zero(expr)
 dotnet_diagnostic.NUnit2032.severity = chosenSeverity
 

where chosenSeverity can be one of none, silent, suggestion, warning, or error.

Via #pragma directive

-
#pragma warning disable NUnit2032 // Consider using Assert.That(expr, Is.Zero) instead of Assert.Zero(expr)
+
#pragma warning disable NUnit2032 // Consider using Assert.That(expr, Is.Zero) instead of ClassicAssert.Zero(expr)
 Code violating the rule here
-#pragma warning restore NUnit2032 // Consider using Assert.That(expr, Is.Zero) instead of Assert.Zero(expr)
+#pragma warning restore NUnit2032 // Consider using Assert.That(expr, Is.Zero) instead of ClassicAssert.Zero(expr)
 

Or put this at the top of the file to disable all instances.

-
#pragma warning disable NUnit2032 // Consider using Assert.That(expr, Is.Zero) instead of Assert.Zero(expr)
+
#pragma warning disable NUnit2032 // Consider using Assert.That(expr, Is.Zero) instead of ClassicAssert.Zero(expr)
 

Via attribute [SuppressMessage]

[System.Diagnostics.CodeAnalysis.SuppressMessage("Assertion",
-    "NUnit2032:Consider using Assert.That(expr, Is.Zero) instead of Assert.Zero(expr)",
+    "NUnit2032:Consider using Assert.That(expr, Is.Zero) instead of ClassicAssert.Zero(expr)",
     Justification = "Reason...")]
 
diff --git a/articles/nunit-analyzers/NUnit2033.html b/articles/nunit-analyzers/NUnit2033.html index 16f863e2b..e1548c050 100644 --- a/articles/nunit-analyzers/NUnit2033.html +++ b/articles/nunit-analyzers/NUnit2033.html @@ -86,7 +86,7 @@

NUnit2033

-

Consider using Assert.That(expr, Is.Not.Zero) instead of Assert.NotZero(expr)

+

Consider using Assert.That(expr, Is.Not.Zero) instead of ClassicAssert.NotZero(expr)

@@ -113,23 +113,24 @@

Co

- +
CodeClassicModelAssertUsageAnalyzerClassicModelAssertUsageAnalyzer

Description

-

Consider using the constraint model, Assert.That(expr, Is.Not.Zero), instead of the classic model, Assert.NotZero(expr).

+

Consider using the constraint model, Assert.That(expr, Is.Not.Zero), instead of the classic model, +ClassicAssert.NotZero(expr).

Motivation

The classic Assert model contains less flexibility than the constraint model, -so this analyzer marks usages of Assert.NotZero from the classic Assert model.

+so this analyzer marks usages of ClassicAssert.NotZero from the classic Assert model.

[Test]
 public void Test()
 {
-    Assert.NotZero(expression);
+    ClassicAssert.NotZero(expression);
 }
 

How to fix violations

-

The analyzer comes with a code fix that will replace Assert.NotZero(expression) with +

The analyzer comes with a code fix that will replace ClassicAssert.NotZero(expression) with Assert.That(expression, Is.Not.Zero). So the code block above will be changed into.

[Test]
 public void Test()
@@ -140,23 +141,24 @@ 

How to fix violations

Configure severity

Via ruleset file

-

Configure the severity per project, for more info see MSDN.

+

Configure the severity per project, for more info see +MSDN.

Via .editorconfig file

-
# NUnit2033: Consider using Assert.That(expr, Is.Not.Zero) instead of Assert.NotZero(expr)
+
# NUnit2033: Consider using Assert.That(expr, Is.Not.Zero) instead of ClassicAssert.NotZero(expr)
 dotnet_diagnostic.NUnit2033.severity = chosenSeverity
 

where chosenSeverity can be one of none, silent, suggestion, warning, or error.

Via #pragma directive

-
#pragma warning disable NUnit2033 // Consider using Assert.That(expr, Is.Not.Zero) instead of Assert.NotZero(expr)
+
#pragma warning disable NUnit2033 // Consider using Assert.That(expr, Is.Not.Zero) instead of ClassicAssert.NotZero(expr)
 Code violating the rule here
-#pragma warning restore NUnit2033 // Consider using Assert.That(expr, Is.Not.Zero) instead of Assert.NotZero(expr)
+#pragma warning restore NUnit2033 // Consider using Assert.That(expr, Is.Not.Zero) instead of ClassicAssert.NotZero(expr)
 

Or put this at the top of the file to disable all instances.

-
#pragma warning disable NUnit2033 // Consider using Assert.That(expr, Is.Not.Zero) instead of Assert.NotZero(expr)
+
#pragma warning disable NUnit2033 // Consider using Assert.That(expr, Is.Not.Zero) instead of ClassicAssert.NotZero(expr)
 

Via attribute [SuppressMessage]

[System.Diagnostics.CodeAnalysis.SuppressMessage("Assertion",
-    "NUnit2033:Consider using Assert.That(expr, Is.Not.Zero) instead of Assert.NotZero(expr)",
+    "NUnit2033:Consider using Assert.That(expr, Is.Not.Zero) instead of ClassicAssert.NotZero(expr)",
     Justification = "Reason...")]
 
diff --git a/articles/nunit-analyzers/NUnit2034.html b/articles/nunit-analyzers/NUnit2034.html index 29d3ead73..21ca70910 100644 --- a/articles/nunit-analyzers/NUnit2034.html +++ b/articles/nunit-analyzers/NUnit2034.html @@ -86,7 +86,7 @@

NUnit2034

-

Consider using Assert.That(expr, Is.NaN) instead of Assert.IsNaN(expr)

+

Consider using Assert.That(expr, Is.NaN) instead of ClassicAssert.IsNaN(expr)

@@ -113,23 +113,24 @@

Consider

- +
CodeClassicModelAssertUsageAnalyzerClassicModelAssertUsageAnalyzer

Description

-

Consider using the constraint model, Assert.That(expr, Is.NaN), instead of the classic model, Assert.IsNaN(expr).

+

Consider using the constraint model, Assert.That(expr, Is.NaN), instead of the classic model, +ClassicAssert.IsNaN(expr).

Motivation

The classic Assert model contains less flexibility than the constraint model, -so this analyzer marks usages of Assert.IsNaN from the classic Assert model.

+so this analyzer marks usages of ClassicAssert.IsNaN from the classic Assert model.

[Test]
 public void Test()
 {
-    Assert.IsNaN(expression);
+    ClassicAssert.IsNaN(expression);
 }
 

How to fix violations

-

The analyzer comes with a code fix that will replace Assert.IsNaN(expression) with +

The analyzer comes with a code fix that will replace ClassicAssert.IsNaN(expression) with Assert.That(expression, Is.NaN). So the code block above will be changed into.

[Test]
 public void Test()
@@ -140,23 +141,24 @@ 

How to fix violations

Configure severity

Via ruleset file

-

Configure the severity per project, for more info see MSDN.

+

Configure the severity per project, for more info see +MSDN.

Via .editorconfig file

-
# NUnit2034: Consider using Assert.That(expr, Is.NaN) instead of Assert.IsNaN(expr)
+
# NUnit2034: Consider using Assert.That(expr, Is.NaN) instead of ClassicAssert.IsNaN(expr)
 dotnet_diagnostic.NUnit2034.severity = chosenSeverity
 

where chosenSeverity can be one of none, silent, suggestion, warning, or error.

Via #pragma directive

-
#pragma warning disable NUnit2034 // Consider using Assert.That(expr, Is.NaN) instead of Assert.IsNaN(expr)
+
#pragma warning disable NUnit2034 // Consider using Assert.That(expr, Is.NaN) instead of ClassicAssert.IsNaN(expr)
 Code violating the rule here
-#pragma warning restore NUnit2034 // Consider using Assert.That(expr, Is.NaN) instead of Assert.IsNaN(expr)
+#pragma warning restore NUnit2034 // Consider using Assert.That(expr, Is.NaN) instead of ClassicAssert.IsNaN(expr)
 

Or put this at the top of the file to disable all instances.

-
#pragma warning disable NUnit2034 // Consider using Assert.That(expr, Is.NaN) instead of Assert.IsNaN(expr)
+
#pragma warning disable NUnit2034 // Consider using Assert.That(expr, Is.NaN) instead of ClassicAssert.IsNaN(expr)
 

Via attribute [SuppressMessage]

[System.Diagnostics.CodeAnalysis.SuppressMessage("Assertion",
-    "NUnit2034:Consider using Assert.That(expr, Is.NaN) instead of Assert.IsNaN(expr)",
+    "NUnit2034:Consider using Assert.That(expr, Is.NaN) instead of ClassicAssert.IsNaN(expr)",
     Justification = "Reason...")]
 
diff --git a/articles/nunit-analyzers/NUnit2035.html b/articles/nunit-analyzers/NUnit2035.html index 140cf5d54..c961ae19e 100644 --- a/articles/nunit-analyzers/NUnit2035.html +++ b/articles/nunit-analyzers/NUnit2035.html @@ -86,7 +86,7 @@

NUnit2035

-

Consider using Assert.That(collection, Is.Empty) instead of Assert.IsEmpty(collection)

+

Consider using Assert.That(collection, Is.Empty) instead of ClassicAssert.IsEmpty(collection)

@@ -113,23 +113,24 @@

Code -

+
ClassicModelAssertUsageAnalyzerClassicModelAssertUsageAnalyzer

Description

-

Consider using the constraint model, Assert.That(collection, Is.Empty), instead of the classic model, Assert.IsEmpty(collection).

+

Consider using the constraint model, Assert.That(collection, Is.Empty), instead of the classic model, +ClassicAssert.IsEmpty(collection).

Motivation

The classic Assert model contains less flexibility than the constraint model, -so this analyzer marks usages of Assert.IsEmpty from the classic Assert model.

+so this analyzer marks usages of ClassicAssert.IsEmpty from the classic Assert model.

[Test]
 public void Test()
 {
-    Assert.IsEmpty(collection);
+    ClassicAssert.IsEmpty(collection);
 }
 

How to fix violations

-

The analyzer comes with a code fix that will replace Assert.IsEmpty(collection) with +

The analyzer comes with a code fix that will replace ClassicAssert.IsEmpty(collection) with Assert.That(collection, Is.Empty). So the code block above will be changed into.

[Test]
 public void Test()
@@ -140,23 +141,24 @@ 

How to fix violations

Configure severity

Via ruleset file

-

Configure the severity per project, for more info see MSDN.

+

Configure the severity per project, for more info see +MSDN.

Via .editorconfig file

-
# NUnit2035: Consider using Assert.That(collection, Is.Empty) instead of Assert.IsEmpty(collection)
+
# NUnit2035: Consider using Assert.That(collection, Is.Empty) instead of ClassicAssert.IsEmpty(collection)
 dotnet_diagnostic.NUnit2035.severity = chosenSeverity
 

where chosenSeverity can be one of none, silent, suggestion, warning, or error.

Via #pragma directive

-
#pragma warning disable NUnit2035 // Consider using Assert.That(collection, Is.Empty) instead of Assert.IsEmpty(collection)
+
#pragma warning disable NUnit2035 // Consider using Assert.That(collection, Is.Empty) instead of ClassicAssert.IsEmpty(collection)
 Code violating the rule here
-#pragma warning restore NUnit2035 // Consider using Assert.That(collection, Is.Empty) instead of Assert.IsEmpty(collection)
+#pragma warning restore NUnit2035 // Consider using Assert.That(collection, Is.Empty) instead of ClassicAssert.IsEmpty(collection)
 

Or put this at the top of the file to disable all instances.

-
#pragma warning disable NUnit2035 // Consider using Assert.That(collection, Is.Empty) instead of Assert.IsEmpty(collection)
+
#pragma warning disable NUnit2035 // Consider using Assert.That(collection, Is.Empty) instead of ClassicAssert.IsEmpty(collection)
 

Via attribute [SuppressMessage]

[System.Diagnostics.CodeAnalysis.SuppressMessage("Assertion",
-    "NUnit2035:Consider using Assert.That(collection, Is.Empty) instead of Assert.IsEmpty(collection)",
+    "NUnit2035:Consider using Assert.That(collection, Is.Empty) instead of ClassicAssert.IsEmpty(collection)",
     Justification = "Reason...")]
 
diff --git a/articles/nunit-analyzers/NUnit2036.html b/articles/nunit-analyzers/NUnit2036.html index 6abe74165..56fa99788 100644 --- a/articles/nunit-analyzers/NUnit2036.html +++ b/articles/nunit-analyzers/NUnit2036.html @@ -86,7 +86,7 @@

NUnit2036

-

Consider using Assert.That(collection, Is.Not.Empty) instead of Assert.IsNotEmpty(collection)

+

Consider using Assert.That(collection, Is.Not.Empty) instead of ClassicAssert.IsNotEmpty(collection)

@@ -113,23 +113,24 @@

Code -

+
ClassicModelAssertUsageAnalyzerClassicModelAssertUsageAnalyzer

Description

-

Consider using the constraint model, Assert.That(collection, Is.Not.Empty), instead of the classic model, Assert.IsNotEmpty(collection).

+

Consider using the constraint model, Assert.That(collection, Is.Not.Empty), instead of the classic model, +ClassicAssert.IsNotEmpty(collection).

Motivation

The classic Assert model contains less flexibility than the constraint model, -so this analyzer marks usages of Assert.IsNotEmpty from the classic Assert model.

+so this analyzer marks usages of ClassicAssert.IsNotEmpty from the classic Assert model.

[Test]
 public void Test()
 {
-    Assert.IsNotEmpty(collection);
+    ClassicAssert.IsNotEmpty(collection);
 }
 

How to fix violations

-

The analyzer comes with a code fix that will replace Assert.IsNotEmpty(collection) with +

The analyzer comes with a code fix that will replace ClassicAssert.IsNotEmpty(collection) with Assert.That(collection, Is.Not.Empty). So the code block above will be changed into.

[Test]
 public void Test()
@@ -140,23 +141,24 @@ 

How to fix violations

Configure severity

Via ruleset file

-

Configure the severity per project, for more info see MSDN.

+

Configure the severity per project, for more info see +MSDN.

Via .editorconfig file

-
# NUnit2036: Consider using Assert.That(collection, Is.Not.Empty) instead of Assert.IsNotEmpty(collection)
+
# NUnit2036: Consider using Assert.That(collection, Is.Not.Empty) instead of ClassicAssert.IsNotEmpty(collection)
 dotnet_diagnostic.NUnit2036.severity = chosenSeverity
 

where chosenSeverity can be one of none, silent, suggestion, warning, or error.

Via #pragma directive

-
#pragma warning disable NUnit2036 // Consider using Assert.That(collection, Is.Not.Empty) instead of Assert.IsNotEmpty(collection)
+
#pragma warning disable NUnit2036 // Consider using Assert.That(collection, Is.Not.Empty) instead of ClassicAssert.IsNotEmpty(collection)
 Code violating the rule here
-#pragma warning restore NUnit2036 // Consider using Assert.That(collection, Is.Not.Empty) instead of Assert.IsNotEmpty(collection)
+#pragma warning restore NUnit2036 // Consider using Assert.That(collection, Is.Not.Empty) instead of ClassicAssert.IsNotEmpty(collection)
 

Or put this at the top of the file to disable all instances.

-
#pragma warning disable NUnit2036 // Consider using Assert.That(collection, Is.Not.Empty) instead of Assert.IsNotEmpty(collection)
+
#pragma warning disable NUnit2036 // Consider using Assert.That(collection, Is.Not.Empty) instead of ClassicAssert.IsNotEmpty(collection)
 

Via attribute [SuppressMessage]

[System.Diagnostics.CodeAnalysis.SuppressMessage("Assertion",
-    "NUnit2036:Consider using Assert.That(collection, Is.Not.Empty) instead of Assert.IsNotEmpty(collection)",
+    "NUnit2036:Consider using Assert.That(collection, Is.Not.Empty) instead of ClassicAssert.IsNotEmpty(collection)",
     Justification = "Reason...")]
 
diff --git a/articles/nunit-analyzers/NUnit2037.html b/articles/nunit-analyzers/NUnit2037.html index faf24d677..c0662786b 100644 --- a/articles/nunit-analyzers/NUnit2037.html +++ b/articles/nunit-analyzers/NUnit2037.html @@ -86,7 +86,7 @@

NUnit2037

-

Consider using Assert.That(collection, Does.Contain(instance)) instead of Assert.Contains(instance, collection)

+

Consider using Assert.That(collection, Does.Contain(instance)) instead of ClassicAssert.Contains(instance, collection)

@@ -113,24 +113,24 @@

Code -

+
ClassicModelAssertUsageAnalyzerClassicModelAssertUsageAnalyzer

Description

Consider using the constraint model, Assert.That(collection, Does.Contain(instance)), instead of the classic model, -Assert.Contains(instance, collection).

+ClassicAssert.Contains(instance, collection).

Motivation

-

The assert Assert.Contains from the classic Assert model makes it easy to confuse the instance and the collection -argument, so this analyzer marks usages of Assert.Contains.

+

The assert ClassicAssert.Contains from the classic Assert model makes it easy to confuse the instance and the +collection argument, so this analyzer marks usages of ClassicAssert.Contains.

[Test]
 public void Test()
 {
-    Assert.Contains(instance, collection);
+    ClassicAssert.Contains(instance, collection);
 }
 

How to fix violations

-

The analyzer comes with a code fix that will replace Assert.Contains(instance, collection) with +

The analyzer comes with a code fix that will replace ClassicAssert.Contains(instance, collection) with Assert.That(collection, Does.Contain(instance)). So the code block above will be changed into.

[Test]
 public void Test()
@@ -144,21 +144,21 @@ 

Via ruleset file

Configure the severity per project, for more info see MSDN.

Via .editorconfig file

-
# NUnit2037: Consider using Assert.That(collection, Does.Contain(instance)) instead of Assert.Contains(instance, collection)
+
# NUnit2037: Consider using Assert.That(collection, Does.Contain(instance)) instead of ClassicAssert.Contains(instance, collection)
 dotnet_diagnostic.NUnit2037.severity = chosenSeverity
 

where chosenSeverity can be one of none, silent, suggestion, warning, or error.

Via #pragma directive

-
#pragma warning disable NUnit2037 // Consider using Assert.That(collection, Does.Contain(instance)) instead of Assert.Contains(instance, collection)
+
#pragma warning disable NUnit2037 // Consider using Assert.That(collection, Does.Contain(instance)) instead of ClassicAssert.Contains(instance, collection)
 Code violating the rule here
-#pragma warning restore NUnit2037 // Consider using Assert.That(collection, Does.Contain(instance)) instead of Assert.Contains(instance, collection)
+#pragma warning restore NUnit2037 // Consider using Assert.That(collection, Does.Contain(instance)) instead of ClassicAssert.Contains(instance, collection)
 

Or put this at the top of the file to disable all instances.

-
#pragma warning disable NUnit2037 // Consider using Assert.That(collection, Does.Contain(instance)) instead of Assert.Contains(instance, collection)
+
#pragma warning disable NUnit2037 // Consider using Assert.That(collection, Does.Contain(instance)) instead of ClassicAssert.Contains(instance, collection)
 

Via attribute [SuppressMessage]

[System.Diagnostics.CodeAnalysis.SuppressMessage("Assertion",
-    "NUnit2037:Consider using Assert.That(collection, Does.Contain(instance)) instead of Assert.Contains(instance, collection)",
+    "NUnit2037:Consider using Assert.That(collection, Does.Contain(instance)) instead of ClassicAssert.Contains(instance, collection)",
     Justification = "Reason...")]
 
diff --git a/articles/nunit-analyzers/NUnit2038.html b/articles/nunit-analyzers/NUnit2038.html index f65943f05..c274cbe82 100644 --- a/articles/nunit-analyzers/NUnit2038.html +++ b/articles/nunit-analyzers/NUnit2038.html @@ -86,7 +86,7 @@

NUnit2038

-

Consider using Assert.That(actual, Is.InstanceOf(expected)) instead of Assert.IsInstanceOf(expected, actual)

+

Consider using Assert.That(actual, Is.InstanceOf(expected)) instead of ClassicAssert.IsInstanceOf(expected, actual)

@@ -113,24 +113,25 @@

Code -

+
ClassicModelAssertUsageAnalyzerClassicModelAssertUsageAnalyzer

Description

Consider using the constraint model, Assert.That(actual, Is.InstanceOf(expected)), instead of the classic model, -Assert.IsInstanceOf(expected, actual).

+ClassicAssert.IsInstanceOf(expected, actual).

Motivation

-

The assert Assert.IsInstanceOf from the classic Assert model makes it easy to confuse the expected and the actual -argument, so this analyzer marks usages of Assert.IsInstanceOf.

+

The assert ClassicAssert.IsInstanceOf from the classic Assert model makes it easy to confuse the expected and the +actual argument, so this analyzer marks usages of ClassicAssert.IsInstanceOf.

[Test]
 public void Test()
 {
-    Assert.IsInstanceOf(expected, actual);
+    ClassicAssert.IsInstanceOf(expected, actual);
 }
 

How to fix violations

-

The analyzer comes with a code fix that will replace Assert.IsInstanceOf(expected, actual) with Assert.That(actual, Is.InstanceOf(expected)). So the code block above will be changed into.

+

The analyzer comes with a code fix that will replace ClassicAssert.IsInstanceOf(expected, actual) with +Assert.That(actual, Is.InstanceOf(expected)). So the code block above will be changed into.

[Test]
 public void Test()
 {
@@ -143,21 +144,21 @@ 

Via ruleset file

Configure the severity per project, for more info see MSDN.

Via .editorconfig file

-
# NUnit2038: Consider using Assert.That(actual, Is.InstanceOf(expected)) instead of Assert.IsInstanceOf(expected, actual)
+
# NUnit2038: Consider using Assert.That(actual, Is.InstanceOf(expected)) instead of ClassicAssert.IsInstanceOf(expected, actual)
 dotnet_diagnostic.NUnit2038.severity = chosenSeverity
 

where chosenSeverity can be one of none, silent, suggestion, warning, or error.

Via #pragma directive

-
#pragma warning disable NUnit2038 // Consider using Assert.That(actual, Is.InstanceOf(expected)) instead of Assert.IsInstanceOf(expected, actual)
+
#pragma warning disable NUnit2038 // Consider using Assert.That(actual, Is.InstanceOf(expected)) instead of ClassicAssert.IsInstanceOf(expected, actual)
 Code violating the rule here
-#pragma warning restore NUnit2038 // Consider using Assert.That(actual, Is.InstanceOf(expected)) instead of Assert.IsInstanceOf(expected, actual)
+#pragma warning restore NUnit2038 // Consider using Assert.That(actual, Is.InstanceOf(expected)) instead of ClassicAssert.IsInstanceOf(expected, actual)
 

Or put this at the top of the file to disable all instances.

-
#pragma warning disable NUnit2038 // Consider using Assert.That(actual, Is.InstanceOf(expected)) instead of Assert.IsInstanceOf(expected, actual)
+
#pragma warning disable NUnit2038 // Consider using Assert.That(actual, Is.InstanceOf(expected)) instead of ClassicAssert.IsInstanceOf(expected, actual)
 

Via attribute [SuppressMessage]

[System.Diagnostics.CodeAnalysis.SuppressMessage("Assertion",
-    "NUnit2038:Consider using Assert.That(actual, Is.InstanceOf(expected)) instead of Assert.IsInstanceOf(expected, actual)",
+    "NUnit2038:Consider using Assert.That(actual, Is.InstanceOf(expected)) instead of ClassicAssert.IsInstanceOf(expected, actual)",
     Justification = "Reason...")]
 
diff --git a/articles/nunit-analyzers/NUnit2039.html b/articles/nunit-analyzers/NUnit2039.html index 1578b4e49..4ae952ef2 100644 --- a/articles/nunit-analyzers/NUnit2039.html +++ b/articles/nunit-analyzers/NUnit2039.html @@ -86,7 +86,7 @@

NUnit2039

-

Consider using Assert.That(actual, Is.Not.InstanceOf(expected)) instead of Assert.IsNotInstanceOf(expected, actual)

+

Consider using Assert.That(actual, Is.Not.InstanceOf(expected)) instead of ClassicAssert.IsNotInstanceOf(expected, actual)

@@ -113,24 +113,24 @@

Code -

+
ClassicModelAssertUsageAnalyzerClassicModelAssertUsageAnalyzer

Description

Consider using the constraint model, Assert.That(actual, Is.Not.InstanceOf(expected)), instead of the classic model, -Assert.IsNotInstanceOf(expected, actual).

+ClassicAssert.IsNotInstanceOf(expected, actual).

Motivation

-

The assert Assert.IsNotInstanceOf from the classic Assert model makes it easy to confuse the expected and the -actual argument, so this analyzer marks usages of Assert.IsNotInstanceOf.

+

The assert ClassicAssert.IsNotInstanceOf from the classic Assert model makes it easy to confuse the expected and the +actual argument, so this analyzer marks usages of ClassicAssert.IsNotInstanceOf.

[Test]
 public void Test()
 {
-    Assert.IsNotInstanceOf(expected, actual);
+    ClassicAssert.IsNotInstanceOf(expected, actual);
 }
 

How to fix violations

-

The analyzer comes with a code fix that will replace Assert.IsNotInstanceOf(expected, actual) with +

The analyzer comes with a code fix that will replace ClassicAssert.IsNotInstanceOf(expected, actual) with Assert.That(actual, Is.Not.InstanceOf(expected)). So the code block above will be changed into.

[Test]
 public void Test()
@@ -144,21 +144,21 @@ 

Via ruleset file

Configure the severity per project, for more info see MSDN.

Via .editorconfig file

-
# NUnit2039: Consider using Assert.That(actual, Is.Not.InstanceOf(expected)) instead of Assert.IsNotInstanceOf(expected, actual)
+
# NUnit2039: Consider using Assert.That(actual, Is.Not.InstanceOf(expected)) instead of ClassicAssert.IsNotInstanceOf(expected, actual)
 dotnet_diagnostic.NUnit2039.severity = chosenSeverity
 

where chosenSeverity can be one of none, silent, suggestion, warning, or error.

Via #pragma directive

-
#pragma warning disable NUnit2039 // Consider using Assert.That(actual, Is.Not.InstanceOf(expected)) instead of Assert.IsNotInstanceOf(expected, actual)
+
#pragma warning disable NUnit2039 // Consider using Assert.That(actual, Is.Not.InstanceOf(expected)) instead of ClassicAssert.IsNotInstanceOf(expected, actual)
 Code violating the rule here
-#pragma warning restore NUnit2039 // Consider using Assert.That(actual, Is.Not.InstanceOf(expected)) instead of Assert.IsNotInstanceOf(expected, actual)
+#pragma warning restore NUnit2039 // Consider using Assert.That(actual, Is.Not.InstanceOf(expected)) instead of ClassicAssert.IsNotInstanceOf(expected, actual)
 

Or put this at the top of the file to disable all instances.

-
#pragma warning disable NUnit2039 // Consider using Assert.That(actual, Is.Not.InstanceOf(expected)) instead of Assert.IsNotInstanceOf(expected, actual)
+
#pragma warning disable NUnit2039 // Consider using Assert.That(actual, Is.Not.InstanceOf(expected)) instead of ClassicAssert.IsNotInstanceOf(expected, actual)
 

Via attribute [SuppressMessage]

[System.Diagnostics.CodeAnalysis.SuppressMessage("Assertion",
-    "NUnit2039:Consider using Assert.That(actual, Is.Not.InstanceOf(expected)) instead of Assert.IsNotInstanceOf(expected, actual)",
+    "NUnit2039:Consider using Assert.That(actual, Is.Not.InstanceOf(expected)) instead of ClassicAssert.IsNotInstanceOf(expected, actual)",
     Justification = "Reason...")]
 
diff --git a/articles/nunit-analyzers/NUnit2040.html b/articles/nunit-analyzers/NUnit2040.html index f9fe80271..86f2b2dfe 100644 --- a/articles/nunit-analyzers/NUnit2040.html +++ b/articles/nunit-analyzers/NUnit2040.html @@ -113,7 +113,7 @@

Non-reference types for SameA Code -SameAsOnValueTypesAnalyzer +SameAsOnValueTypesAnalyzer @@ -136,7 +136,8 @@

How to fix violations

Configure severity

Via ruleset file

-

Configure the severity per project, for more info see MSDN.

+

Configure the severity per project, for more info see +MSDN.

Via .editorconfig file

# NUnit2040: Non-reference types for SameAs constraint
 dotnet_diagnostic.NUnit2040.severity = chosenSeverity
diff --git a/articles/nunit-analyzers/NUnit2041.html b/articles/nunit-analyzers/NUnit2041.html
index ab45f968f..5a2645059 100644
--- a/articles/nunit-analyzers/NUnit2041.html
+++ b/articles/nunit-analyzers/NUnit2041.html
@@ -113,7 +113,7 @@ 

Incompatible types for com Code -ComparableTypesAnalyzer +ComparableTypesAnalyzer @@ -134,7 +134,8 @@

How to fix violations

Configure severity

Via ruleset file

-

Configure the severity per project, for more info see MSDN.

+

Configure the severity per project, for more info see +MSDN.

Via .editorconfig file

# NUnit2041: Incompatible types for comparison constraint
 dotnet_diagnostic.NUnit2041.severity = chosenSeverity
diff --git a/articles/nunit-analyzers/NUnit2042.html b/articles/nunit-analyzers/NUnit2042.html
index 3f6a7f78f..067e02899 100644
--- a/articles/nunit-analyzers/NUnit2042.html
+++ b/articles/nunit-analyzers/NUnit2042.html
@@ -113,7 +113,7 @@ 

Comparison constraint on object

Code -ComparableTypesAnalyzer +ComparableTypesAnalyzer @@ -145,7 +145,8 @@

How to fix violations

Configure severity

Via ruleset file

-

Configure the severity per project, for more info see MSDN.

+

Configure the severity per project, for more info see +MSDN.

Via .editorconfig file

# NUnit2042: Comparison constraint on object
 dotnet_diagnostic.NUnit2042.severity = chosenSeverity
diff --git a/articles/nunit-analyzers/NUnit2043.html b/articles/nunit-analyzers/NUnit2043.html
index e3849f445..b6271793a 100644
--- a/articles/nunit-analyzers/NUnit2043.html
+++ b/articles/nunit-analyzers/NUnit2043.html
@@ -113,7 +113,7 @@ 

Code -ComparisonConstraintUsageAnalyzer +ComparisonConstraintUsageAnalyzer @@ -126,11 +126,11 @@

Motivation

[Test]
 public void Test()
 {
-    Assert.True(actual > expected);
+    ClassicAssert.True(actual > expected);
 }
 

How to fix violations

-

The analyzer comes with a code fix that will replace Assert.True(actual > expected) with +

The analyzer comes with a code fix that will replace ClassicAssert.True(actual > expected) with Assert.That(actual, Is.GreaterThan(expected)). So the code block above will be changed into

[Test]
 public void Test()
@@ -141,7 +141,8 @@ 

How to fix violations

Configure severity

Via ruleset file

-

Configure the severity per project, for more info see MSDN.

+

Configure the severity per project, for more info see +MSDN.

Via .editorconfig file

# NUnit2043: Use ComparisonConstraint for better assertion messages in case of failure
 dotnet_diagnostic.NUnit2043.severity = chosenSeverity
diff --git a/articles/nunit-analyzers/NUnit2044.html b/articles/nunit-analyzers/NUnit2044.html
index 295649bab..4e2674984 100644
--- a/articles/nunit-analyzers/NUnit2044.html
+++ b/articles/nunit-analyzers/NUnit2044.html
@@ -113,7 +113,7 @@ 

Non-delegate actual parameter

Code -DelegateRequiredAnalyzer +DelegateRequiredAnalyzer @@ -129,7 +129,8 @@

How to fix violations

Configure severity

Via ruleset file

-

Configure the severity per project, for more info see MSDN.

+

Configure the severity per project, for more info see +MSDN.

Via .editorconfig file

# NUnit2044: Non-delegate actual parameter
 dotnet_diagnostic.NUnit2044.severity = chosenSeverity
diff --git a/articles/nunit-analyzers/NUnit2045.html b/articles/nunit-analyzers/NUnit2045.html
index 6e3f64cef..7afcd946c 100644
--- a/articles/nunit-analyzers/NUnit2045.html
+++ b/articles/nunit-analyzers/NUnit2045.html
@@ -113,7 +113,7 @@ 

Use Assert.Multiple

Code -UseAssertMultipleAnalyzer +UseAssertMultipleAnalyzer @@ -138,7 +138,8 @@

How to fix violations

Configure severity

Via ruleset file

-

Configure the severity per project, for more info see MSDN.

+

Configure the severity per project, for more info see +MSDN.

Via .editorconfig file

# NUnit2045: Use Assert.Multiple
 dotnet_diagnostic.NUnit2045.severity = chosenSeverity
diff --git a/articles/nunit-analyzers/NUnit2046.html b/articles/nunit-analyzers/NUnit2046.html
index 1cc4abb5a..7f30b0c09 100644
--- a/articles/nunit-analyzers/NUnit2046.html
+++ b/articles/nunit-analyzers/NUnit2046.html
@@ -113,7 +113,7 @@ 

Code -UseCollectionConstraintAnalyzer +UseCollectionConstraintAnalyzer @@ -144,7 +144,8 @@

How to fix violations

Configure severity

Via ruleset file

-

Configure the severity per project, for more info see MSDN.

+

Configure the severity per project, for more info see +MSDN.

Via .editorconfig file

# NUnit2046: Use CollectionConstraint for better assertion messages in case of failure
 dotnet_diagnostic.NUnit2046.severity = chosenSeverity
diff --git a/articles/nunit-analyzers/NUnit2047.html b/articles/nunit-analyzers/NUnit2047.html
index dd9705112..83bfe1f32 100644
--- a/articles/nunit-analyzers/NUnit2047.html
+++ b/articles/nunit-analyzers/NUnit2047.html
@@ -113,7 +113,7 @@ 

Incompatible types for Within Code -WithinUsageAnalyzer +WithinUsageAnalyzer diff --git a/articles/nunit-analyzers/NUnit2048.html b/articles/nunit-analyzers/NUnit2048.html new file mode 100644 index 000000000..9b2360ccf --- /dev/null +++ b/articles/nunit-analyzers/NUnit2048.html @@ -0,0 +1,223 @@ + + + + + + + + + + NUnit2048 | NUnit Docs + + + + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
Search Results for
+
+

+
+
    +
    +
    + + + +
    + + + + + + diff --git a/articles/nunit-analyzers/NUnit2049.html b/articles/nunit-analyzers/NUnit2049.html new file mode 100644 index 000000000..be2964710 --- /dev/null +++ b/articles/nunit-analyzers/NUnit2049.html @@ -0,0 +1,235 @@ + + + + + + + + + + NUnit2049 | NUnit Docs + + + + + + + + + + + + + + + +
    +
    + + + + +
    +
    + +
    +
    Search Results for
    +
    +

    +
    +
      +
      +
      + + + +
      + + + + + + diff --git a/articles/nunit-analyzers/NUnit2050.html b/articles/nunit-analyzers/NUnit2050.html new file mode 100644 index 000000000..06b3a081f --- /dev/null +++ b/articles/nunit-analyzers/NUnit2050.html @@ -0,0 +1,270 @@ + + + + + + + + + + NUnit2050 | NUnit Docs + + + + + + + + + + + + + + + +
      +
      + + + + +
      +
      + +
      +
      Search Results for
      +
      +

      +
      +
        +
        +
        + + + +
        + + + + + + diff --git a/articles/nunit-analyzers/NUnit3001.html b/articles/nunit-analyzers/NUnit3001.html index fd17a5e19..ad4bdb41b 100644 --- a/articles/nunit-analyzers/NUnit3001.html +++ b/articles/nunit-analyzers/NUnit3001.html @@ -86,7 +86,7 @@

        NUnit3001

        -

        Expression was checked in an Assert.NotNull, Assert.IsNotNull or Assert.That call

        +

        Expression was checked in an ClassicAssert.NotNull, ClassicAssert.IsNotNull or Assert.That call

        @@ -113,7 +113,7 @@

        Code -

        +
        DereferencePossiblyNullReferenceSuppressorDereferencePossiblyNullReferenceSuppressor
        @@ -122,8 +122,8 @@

        Description

        CS8602: Dereference of a possibly null reference.

        It then checks the previous statements for one of:

          -
        • Assert.NotNull(...)
        • -
        • Assert.IsNotNull(...)
        • +
        • ClassicAssert.NotNull(...)
        • +
        • ClassicAssert.IsNotNull(...)
        • Assert.That(..., Is.Not.Null)

        For the same expression as the one that raised the original compiler error. @@ -133,8 +133,8 @@

        Description

        • Assert.That(...HasValue)
        • Assert.That(...HasValue, Is.True)
        • -
        • Assert.True(...HasValue)
        • -
        • Assert.IsTrue(...HasValue)
        • +
        • ClassicAssert.True(...HasValue)
        • +
        • ClassicAssert.IsTrue(...HasValue)

        The exception is that if the statement is part of an Assert.Multiple it is not suppressed, as in this case the statement containing the compiler error will be executed.

        @@ -181,12 +181,14 @@

        Configure severity

        The rule has no severity, but can be disabled.

        Via ruleset file

        To disable the rule for a project, you need to add a -ruleset file

        +ruleset file

        <?xml version="1.0" encoding="utf-8"?>
         <RuleSet Name="NUnit.Analyzer Suppressions" Description="DiagnosticSuppression Rules" ToolsVersion="12.0">
           <Rules AnalyzerId="DiagnosticSuppressors" RuleNamespace="NUnit.NUnitAnalyzers">
             <Rule Id="NUnit3001" Action="Info" /> <!-- Possible Null Reference -->
             <Rule Id="NUnit3002" Action="Info" /> <!-- NonNullableField/Property is Uninitialized -->
        +    <Rule Id="NUnit3003" Action="Info" /> <!-- Avoid Uninstantiated Internal Classes -->
        +    <Rule Id="NUnit3004" Action="Info" /> <!-- Types that own disposable fields should be disposable -->
           </Rules>
         </RuleSet>
         
        @@ -198,7 +200,7 @@

        Via ruleset file

        For more info about rulesets see MSDN.

        Via .editorconfig file

        This is currently not working. Waiting for Roslyn

        -
        # NUnit3001: Expression was checked in an Assert.NotNull, Assert.IsNotNull or Assert.That call
        +
        # NUnit3001: Expression was checked in an ClassicAssert.NotNull, ClassicAssert.IsNotNull or Assert.That call
         dotnet_diagnostic.NUnit3001.severity = none
         
        diff --git a/articles/nunit-analyzers/NUnit3002.html b/articles/nunit-analyzers/NUnit3002.html index 2c415a161..54fa04fcc 100644 --- a/articles/nunit-analyzers/NUnit3002.html +++ b/articles/nunit-analyzers/NUnit3002.html @@ -113,15 +113,18 @@

        Field/Prop Code -NonNullableFieldOrPropertyIsUninitializedSuppressor +NonNullableFieldOrPropertyIsUninitializedSuppressor

        Description

        This rule check diagnostics reported by the CS8618 compiler error:

        -

        CS8618: Non-nullable field '_name_' must contain a non-null value when exiting constructor. Consider declaring the field as nullable. CS8618: Non-nullable property '_Name_' must contain a non-null value when exiting constructor. Consider declaring the property as nullable.

        -

        If the violating field/property is set in the SetUp or OneTimeSetUp method. The rule suppresses the error. This -allows for non-nullable fields/properties to be used in a TestFixture.

        +
          +
        • CS8618: Non-nullable field '_name_' must contain a non-null value when exiting constructor. Consider declaring the field as nullable.
        • +
        • CS8618: Non-nullable property '_Name_' must contain a non-null value when exiting constructor. Consider declaring the property as nullable.
        • +
        +

        If the violating field/property is set in the SetUp or OneTimeSetUp method. The rule suppresses the error. +This allows for non-nullable fields/properties to be used in a TestFixture.

        The rule does detect indirect calls, when the field is set in a method called by the SetUp or OneTimeSetUp methods.

        Motivation

        [TestFixture]
        @@ -142,22 +145,24 @@ 

        Motivation

        } }
        -

        In the above fixture the compiler would give a warning because instance is not set in the constructor. The suggestion -to mark instance as nullable would mean that we have to test for null in all Test methods or use the null -suppression operator (!) everywhere.

        +

        In the above fixture the compiler would give a warning because instance is not set in the constructor. +The suggestion to mark instance as nullable would mean that we have to test for null in all Test methods +or use the null suppression operator (!) everywhere.

        How to fix violations

        Initialize the field in the SetUp or OneTimeSetUp methods.

        Configure severity

        The rule has no severity, but can be disabled.

        Via ruleset file

        -

        To disable the rule for a project, you need to add a ruleset -file

        +

        To disable the rule for a project, you need to add a +ruleset file

        <?xml version="1.0" encoding="utf-8"?>
         <RuleSet Name="NUnit.Analyzer Suppressions" Description="DiagnosticSuppression Rules" ToolsVersion="12.0">
           <Rules AnalyzerId="DiagnosticSuppressors" RuleNamespace="NUnit.NUnitAnalyzers">
             <Rule Id="NUnit3001" Action="Info" /> <!-- Possible Null Reference -->
             <Rule Id="NUnit3002" Action="Info" /> <!-- NonNullableField/Property is Uninitialized -->
        +    <Rule Id="NUnit3003" Action="Info" /> <!-- Avoid Uninstantiated Internal Classes -->
        +    <Rule Id="NUnit3004" Action="Info" /> <!-- Types that own disposable fields should be disposable -->
           </Rules>
         </RuleSet>
         
        @@ -166,8 +171,7 @@

        Via ruleset file

        <CodeAnalysisRuleSet>NUnit.Analyzers.Suppressions.ruleset</CodeAnalysisRuleSet> </PropertyGroup>
        -

        For more info about rulesets see -MSDN.

        +

        For more info about rulesets see MSDN.

        Via .editorconfig file

        This is currently not working. Waiting for Roslyn

        # NUnit3002: Field/Property is initialized in SetUp or OneTimeSetUp method
        diff --git a/articles/nunit-analyzers/NUnit3003.html b/articles/nunit-analyzers/NUnit3003.html
        index 2b908d0ed..72d5c94da 100644
        --- a/articles/nunit-analyzers/NUnit3003.html
        +++ b/articles/nunit-analyzers/NUnit3003.html
        @@ -113,14 +113,15 @@ 

        Clas Code -AvoidUninstantiatedInternalClassSuppressor +AvoidUninstantiatedInternalClassSuppressor

        Description

        Class is a NUnit TestFixture and called by reflection

        Motivation

        -

        The default roslyn analyzer has rule CA1812 +

        The default roslyn analyzer has rule +CA1812 which warns about internal classes not being used. That analyzer doesn't know about NUnit test classes. This suppressor catches the error, verifies the class is an NUnit TestFixture and if so suppresses the error.

        @@ -129,7 +130,7 @@

        Configure severity

        The rule has no severity, but can be disabled.

        Via ruleset file

        To disable the rule for a project, you need to add a -ruleset file

        +ruleset file

        <?xml version="1.0" encoding="utf-8"?>
         <RuleSet Name="NUnit.Analyzer Suppressions" Description="DiagnosticSuppression Rules" ToolsVersion="12.0">
           <Rules AnalyzerId="DiagnosticSuppressors" RuleNamespace="NUnit.NUnitAnalyzers">
        diff --git a/articles/nunit-analyzers/NUnit3004.html b/articles/nunit-analyzers/NUnit3004.html
        index 56aab8e50..21e7ed7d5 100644
        --- a/articles/nunit-analyzers/NUnit3004.html
        +++ b/articles/nunit-analyzers/NUnit3004.html
        @@ -113,7 +113,7 @@ 

        Field sh Code -TypesThatOwnDisposableFieldsShouldBeDisposableSuppressor +TypesThatOwnDisposableFieldsShouldBeDisposableSuppressor @@ -121,7 +121,8 @@

        Description

        Field/Property is Disposed in TearDown or OneTimeTearDown method

        Motivation

        The Roslyn analyzer fires -CA1001 for classes that have +CA1001 +for classes that have IDisposable members, but itself is not IDisposable.

        Many NUnit tests initialize fields in tests or a SetUp method and then Dispose them in the TearDown method.

        @@ -131,8 +132,8 @@

        How to fix violations

        Configure severity

        The rule has no severity, but can be disabled.

        Via ruleset file

        -

        To disable the rule for a project, you need to add a ruleset -file

        +

        To disable the rule for a project, you need to add a +ruleset file

        <?xml version="1.0" encoding="utf-8"?>
         <RuleSet Name="NUnit.Analyzer Suppressions" Description="DiagnosticSuppression Rules" ToolsVersion="12.0">
           <Rules AnalyzerId="DiagnosticSuppressors" RuleNamespace="NUnit.NUnitAnalyzers">
        @@ -148,8 +149,7 @@ 

        Via ruleset file

        <CodeAnalysisRuleSet>NUnit.Analyzers.Suppressions.ruleset</CodeAnalysisRuleSet> </PropertyGroup>
        -

        For more info about rulesets see -MSDN.

        +

        For more info about rulesets see MSDN.

        Via .editorconfig file

        This is currently not working. Waiting for Roslyn

        # NUnit3004: Field should be Disposed in TearDown or OneTimeTearDown method
        diff --git a/articles/nunit-analyzers/toc.html b/articles/nunit-analyzers/toc.html
        index ee3e17525..e8db015a6 100644
        --- a/articles/nunit-analyzers/toc.html
        +++ b/articles/nunit-analyzers/toc.html
        @@ -254,6 +254,15 @@
                                   
      • NUnit2047
      • +
      • + NUnit2048 +
      • +
      • + NUnit2049 +
      • +
      • + NUnit2050 +
      • NUnit3001
      • diff --git a/articles/nunit-analyzers/toc.json b/articles/nunit-analyzers/toc.json index eb3ccae29..e27501ff6 100644 --- a/articles/nunit-analyzers/toc.json +++ b/articles/nunit-analyzers/toc.json @@ -1,2 +1,2 @@ -{"order":100,"items":[{"name":"NUnit Analyzers","href":"NUnit-Analyzers.html","topicHref":"NUnit-Analyzers.html","items":[{"name":"NUnit1001","href":"NUnit1001.html","topicHref":"NUnit1001.html"},{"name":"NUnit1002","href":"NUnit1002.html","topicHref":"NUnit1002.html"},{"name":"NUnit1003","href":"NUnit1003.html","topicHref":"NUnit1003.html"},{"name":"NUnit1004","href":"NUnit1004.html","topicHref":"NUnit1004.html"},{"name":"NUnit1005","href":"NUnit1005.html","topicHref":"NUnit1005.html"},{"name":"NUnit1006","href":"NUnit1006.html","topicHref":"NUnit1006.html"},{"name":"NUnit1007","href":"NUnit1007.html","topicHref":"NUnit1007.html"},{"name":"NUnit1008","href":"NUnit1008.html","topicHref":"NUnit1008.html"},{"name":"NUnit1009","href":"NUnit1009.html","topicHref":"NUnit1009.html"},{"name":"NUnit1010","href":"NUnit1010.html","topicHref":"NUnit1010.html"},{"name":"NUnit1011","href":"NUnit1011.html","topicHref":"NUnit1011.html"},{"name":"NUnit1012","href":"NUnit1012.html","topicHref":"NUnit1012.html"},{"name":"NUnit1013","href":"NUnit1013.html","topicHref":"NUnit1013.html"},{"name":"NUnit1014","href":"NUnit1014.html","topicHref":"NUnit1014.html"},{"name":"NUnit1015","href":"NUnit1015.html","topicHref":"NUnit1015.html"},{"name":"NUnit1016","href":"NUnit1016.html","topicHref":"NUnit1016.html"},{"name":"NUnit1017","href":"NUnit1017.html","topicHref":"NUnit1017.html"},{"name":"NUnit1018","href":"NUnit1018.html","topicHref":"NUnit1018.html"},{"name":"NUnit1019","href":"NUnit1019.html","topicHref":"NUnit1019.html"},{"name":"NUnit1020","href":"NUnit1020.html","topicHref":"NUnit1020.html"},{"name":"NUnit1021","href":"NUnit1021.html","topicHref":"NUnit1021.html"},{"name":"NUnit1022","href":"NUnit1022.html","topicHref":"NUnit1022.html"},{"name":"NUnit1023","href":"NUnit1023.html","topicHref":"NUnit1023.html"},{"name":"NUnit1024","href":"NUnit1024.html","topicHref":"NUnit1024.html"},{"name":"NUnit1025","href":"NUnit1025.html","topicHref":"NUnit1025.html"},{"name":"NUnit1026","href":"NUnit1026.html","topicHref":"NUnit1026.html"},{"name":"NUnit1027","href":"NUnit1027.html","topicHref":"NUnit1027.html"},{"name":"NUnit1028","href":"NUnit1028.html","topicHref":"NUnit1028.html"},{"name":"NUnit1029","href":"NUnit1029.html","topicHref":"NUnit1029.html"},{"name":"NUnit1030","href":"NUnit1030.html","topicHref":"NUnit1030.html"},{"name":"NUnit1031","href":"NUnit1031.html","topicHref":"NUnit1031.html"},{"name":"NUnit1032","href":"NUnit1032.html","topicHref":"NUnit1032.html"},{"name":"NUnit2001","href":"NUnit2001.html","topicHref":"NUnit2001.html"},{"name":"NUnit2002","href":"NUnit2002.html","topicHref":"NUnit2002.html"},{"name":"NUnit2003","href":"NUnit2003.html","topicHref":"NUnit2003.html"},{"name":"NUnit2004","href":"NUnit2004.html","topicHref":"NUnit2004.html"},{"name":"NUnit2005","href":"NUnit2005.html","topicHref":"NUnit2005.html"},{"name":"NUnit2006","href":"NUnit2006.html","topicHref":"NUnit2006.html"},{"name":"NUnit2007","href":"NUnit2007.html","topicHref":"NUnit2007.html"},{"name":"NUnit2008","href":"NUnit2008.html","topicHref":"NUnit2008.html"},{"name":"NUnit2009","href":"NUnit2009.html","topicHref":"NUnit2009.html"},{"name":"NUnit2010","href":"NUnit2010.html","topicHref":"NUnit2010.html"},{"name":"NUnit2011","href":"NUnit2011.html","topicHref":"NUnit2011.html"},{"name":"NUnit2012","href":"NUnit2012.html","topicHref":"NUnit2012.html"},{"name":"NUnit2013","href":"NUnit2013.html","topicHref":"NUnit2013.html"},{"name":"NUnit2014","href":"NUnit2014.html","topicHref":"NUnit2014.html"},{"name":"NUnit2015","href":"NUnit2015.html","topicHref":"NUnit2015.html"},{"name":"NUnit2016","href":"NUnit2016.html","topicHref":"NUnit2016.html"},{"name":"NUnit2017","href":"NUnit2017.html","topicHref":"NUnit2017.html"},{"name":"NUnit2018","href":"NUnit2018.html","topicHref":"NUnit2018.html"},{"name":"NUnit2019","href":"NUnit2019.html","topicHref":"NUnit2019.html"},{"name":"NUnit2020","href":"NUnit2020.html","topicHref":"NUnit2020.html"},{"name":"NUnit2021","href":"NUnit2021.html","topicHref":"NUnit2021.html"},{"name":"NUnit2022","href":"NUnit2022.html","topicHref":"NUnit2022.html"},{"name":"NUnit2023","href":"NUnit2023.html","topicHref":"NUnit2023.html"},{"name":"NUnit2024","href":"NUnit2024.html","topicHref":"NUnit2024.html"},{"name":"NUnit2025","href":"NUnit2025.html","topicHref":"NUnit2025.html"},{"name":"NUnit2026","href":"NUnit2026.html","topicHref":"NUnit2026.html"},{"name":"NUnit2027","href":"NUnit2027.html","topicHref":"NUnit2027.html"},{"name":"NUnit2028","href":"NUnit2028.html","topicHref":"NUnit2028.html"},{"name":"NUnit2029","href":"NUnit2029.html","topicHref":"NUnit2029.html"},{"name":"NUnit2030","href":"NUnit2030.html","topicHref":"NUnit2030.html"},{"name":"NUnit2031","href":"NUnit2031.html","topicHref":"NUnit2031.html"},{"name":"NUnit2032","href":"NUnit2032.html","topicHref":"NUnit2032.html"},{"name":"NUnit2033","href":"NUnit2033.html","topicHref":"NUnit2033.html"},{"name":"NUnit2034","href":"NUnit2034.html","topicHref":"NUnit2034.html"},{"name":"NUnit2035","href":"NUnit2035.html","topicHref":"NUnit2035.html"},{"name":"NUnit2036","href":"NUnit2036.html","topicHref":"NUnit2036.html"},{"name":"NUnit2037","href":"NUnit2037.html","topicHref":"NUnit2037.html"},{"name":"NUnit2038","href":"NUnit2038.html","topicHref":"NUnit2038.html"},{"name":"NUnit2039","href":"NUnit2039.html","topicHref":"NUnit2039.html"},{"name":"NUnit2040","href":"NUnit2040.html","topicHref":"NUnit2040.html"},{"name":"NUnit2041","href":"NUnit2041.html","topicHref":"NUnit2041.html"},{"name":"NUnit2042","href":"NUnit2042.html","topicHref":"NUnit2042.html"},{"name":"NUnit2043","href":"NUnit2043.html","topicHref":"NUnit2043.html"},{"name":"NUnit2044","href":"NUnit2044.html","topicHref":"NUnit2044.html"},{"name":"NUnit2045","href":"NUnit2045.html","topicHref":"NUnit2045.html"},{"name":"NUnit2046","href":"NUnit2046.html","topicHref":"NUnit2046.html"},{"name":"NUnit2047","href":"NUnit2047.html","topicHref":"NUnit2047.html"},{"name":"NUnit3001","href":"NUnit3001.html","topicHref":"NUnit3001.html"},{"name":"NUnit3002","href":"NUnit3002.html","topicHref":"NUnit3002.html"},{"name":"NUnit3003","href":"NUnit3003.html","topicHref":"NUnit3003.html"},{"name":"NUnit3004","href":"NUnit3004.html","topicHref":"NUnit3004.html"}]}]} +{"order":100,"items":[{"name":"NUnit Analyzers","href":"NUnit-Analyzers.html","topicHref":"NUnit-Analyzers.html","items":[{"name":"NUnit1001","href":"NUnit1001.html","topicHref":"NUnit1001.html"},{"name":"NUnit1002","href":"NUnit1002.html","topicHref":"NUnit1002.html"},{"name":"NUnit1003","href":"NUnit1003.html","topicHref":"NUnit1003.html"},{"name":"NUnit1004","href":"NUnit1004.html","topicHref":"NUnit1004.html"},{"name":"NUnit1005","href":"NUnit1005.html","topicHref":"NUnit1005.html"},{"name":"NUnit1006","href":"NUnit1006.html","topicHref":"NUnit1006.html"},{"name":"NUnit1007","href":"NUnit1007.html","topicHref":"NUnit1007.html"},{"name":"NUnit1008","href":"NUnit1008.html","topicHref":"NUnit1008.html"},{"name":"NUnit1009","href":"NUnit1009.html","topicHref":"NUnit1009.html"},{"name":"NUnit1010","href":"NUnit1010.html","topicHref":"NUnit1010.html"},{"name":"NUnit1011","href":"NUnit1011.html","topicHref":"NUnit1011.html"},{"name":"NUnit1012","href":"NUnit1012.html","topicHref":"NUnit1012.html"},{"name":"NUnit1013","href":"NUnit1013.html","topicHref":"NUnit1013.html"},{"name":"NUnit1014","href":"NUnit1014.html","topicHref":"NUnit1014.html"},{"name":"NUnit1015","href":"NUnit1015.html","topicHref":"NUnit1015.html"},{"name":"NUnit1016","href":"NUnit1016.html","topicHref":"NUnit1016.html"},{"name":"NUnit1017","href":"NUnit1017.html","topicHref":"NUnit1017.html"},{"name":"NUnit1018","href":"NUnit1018.html","topicHref":"NUnit1018.html"},{"name":"NUnit1019","href":"NUnit1019.html","topicHref":"NUnit1019.html"},{"name":"NUnit1020","href":"NUnit1020.html","topicHref":"NUnit1020.html"},{"name":"NUnit1021","href":"NUnit1021.html","topicHref":"NUnit1021.html"},{"name":"NUnit1022","href":"NUnit1022.html","topicHref":"NUnit1022.html"},{"name":"NUnit1023","href":"NUnit1023.html","topicHref":"NUnit1023.html"},{"name":"NUnit1024","href":"NUnit1024.html","topicHref":"NUnit1024.html"},{"name":"NUnit1025","href":"NUnit1025.html","topicHref":"NUnit1025.html"},{"name":"NUnit1026","href":"NUnit1026.html","topicHref":"NUnit1026.html"},{"name":"NUnit1027","href":"NUnit1027.html","topicHref":"NUnit1027.html"},{"name":"NUnit1028","href":"NUnit1028.html","topicHref":"NUnit1028.html"},{"name":"NUnit1029","href":"NUnit1029.html","topicHref":"NUnit1029.html"},{"name":"NUnit1030","href":"NUnit1030.html","topicHref":"NUnit1030.html"},{"name":"NUnit1031","href":"NUnit1031.html","topicHref":"NUnit1031.html"},{"name":"NUnit1032","href":"NUnit1032.html","topicHref":"NUnit1032.html"},{"name":"NUnit2001","href":"NUnit2001.html","topicHref":"NUnit2001.html"},{"name":"NUnit2002","href":"NUnit2002.html","topicHref":"NUnit2002.html"},{"name":"NUnit2003","href":"NUnit2003.html","topicHref":"NUnit2003.html"},{"name":"NUnit2004","href":"NUnit2004.html","topicHref":"NUnit2004.html"},{"name":"NUnit2005","href":"NUnit2005.html","topicHref":"NUnit2005.html"},{"name":"NUnit2006","href":"NUnit2006.html","topicHref":"NUnit2006.html"},{"name":"NUnit2007","href":"NUnit2007.html","topicHref":"NUnit2007.html"},{"name":"NUnit2008","href":"NUnit2008.html","topicHref":"NUnit2008.html"},{"name":"NUnit2009","href":"NUnit2009.html","topicHref":"NUnit2009.html"},{"name":"NUnit2010","href":"NUnit2010.html","topicHref":"NUnit2010.html"},{"name":"NUnit2011","href":"NUnit2011.html","topicHref":"NUnit2011.html"},{"name":"NUnit2012","href":"NUnit2012.html","topicHref":"NUnit2012.html"},{"name":"NUnit2013","href":"NUnit2013.html","topicHref":"NUnit2013.html"},{"name":"NUnit2014","href":"NUnit2014.html","topicHref":"NUnit2014.html"},{"name":"NUnit2015","href":"NUnit2015.html","topicHref":"NUnit2015.html"},{"name":"NUnit2016","href":"NUnit2016.html","topicHref":"NUnit2016.html"},{"name":"NUnit2017","href":"NUnit2017.html","topicHref":"NUnit2017.html"},{"name":"NUnit2018","href":"NUnit2018.html","topicHref":"NUnit2018.html"},{"name":"NUnit2019","href":"NUnit2019.html","topicHref":"NUnit2019.html"},{"name":"NUnit2020","href":"NUnit2020.html","topicHref":"NUnit2020.html"},{"name":"NUnit2021","href":"NUnit2021.html","topicHref":"NUnit2021.html"},{"name":"NUnit2022","href":"NUnit2022.html","topicHref":"NUnit2022.html"},{"name":"NUnit2023","href":"NUnit2023.html","topicHref":"NUnit2023.html"},{"name":"NUnit2024","href":"NUnit2024.html","topicHref":"NUnit2024.html"},{"name":"NUnit2025","href":"NUnit2025.html","topicHref":"NUnit2025.html"},{"name":"NUnit2026","href":"NUnit2026.html","topicHref":"NUnit2026.html"},{"name":"NUnit2027","href":"NUnit2027.html","topicHref":"NUnit2027.html"},{"name":"NUnit2028","href":"NUnit2028.html","topicHref":"NUnit2028.html"},{"name":"NUnit2029","href":"NUnit2029.html","topicHref":"NUnit2029.html"},{"name":"NUnit2030","href":"NUnit2030.html","topicHref":"NUnit2030.html"},{"name":"NUnit2031","href":"NUnit2031.html","topicHref":"NUnit2031.html"},{"name":"NUnit2032","href":"NUnit2032.html","topicHref":"NUnit2032.html"},{"name":"NUnit2033","href":"NUnit2033.html","topicHref":"NUnit2033.html"},{"name":"NUnit2034","href":"NUnit2034.html","topicHref":"NUnit2034.html"},{"name":"NUnit2035","href":"NUnit2035.html","topicHref":"NUnit2035.html"},{"name":"NUnit2036","href":"NUnit2036.html","topicHref":"NUnit2036.html"},{"name":"NUnit2037","href":"NUnit2037.html","topicHref":"NUnit2037.html"},{"name":"NUnit2038","href":"NUnit2038.html","topicHref":"NUnit2038.html"},{"name":"NUnit2039","href":"NUnit2039.html","topicHref":"NUnit2039.html"},{"name":"NUnit2040","href":"NUnit2040.html","topicHref":"NUnit2040.html"},{"name":"NUnit2041","href":"NUnit2041.html","topicHref":"NUnit2041.html"},{"name":"NUnit2042","href":"NUnit2042.html","topicHref":"NUnit2042.html"},{"name":"NUnit2043","href":"NUnit2043.html","topicHref":"NUnit2043.html"},{"name":"NUnit2044","href":"NUnit2044.html","topicHref":"NUnit2044.html"},{"name":"NUnit2045","href":"NUnit2045.html","topicHref":"NUnit2045.html"},{"name":"NUnit2046","href":"NUnit2046.html","topicHref":"NUnit2046.html"},{"name":"NUnit2047","href":"NUnit2047.html","topicHref":"NUnit2047.html"},{"name":"NUnit2048","href":"NUnit2048.html","topicHref":"NUnit2048.html"},{"name":"NUnit2049","href":"NUnit2049.html","topicHref":"NUnit2049.html"},{"name":"NUnit2050","href":"NUnit2050.html","topicHref":"NUnit2050.html"},{"name":"NUnit3001","href":"NUnit3001.html","topicHref":"NUnit3001.html"},{"name":"NUnit3002","href":"NUnit3002.html","topicHref":"NUnit3002.html"},{"name":"NUnit3003","href":"NUnit3003.html","topicHref":"NUnit3003.html"},{"name":"NUnit3004","href":"NUnit3004.html","topicHref":"NUnit3004.html"}]}]} diff --git a/articles/toc.html b/articles/toc.html index f3d83cbc8..8fc3630e6 100644 --- a/articles/toc.html +++ b/articles/toc.html @@ -1218,6 +1218,15 @@
      • NUnit2047
      • +
      • + NUnit2048 +
      • +
      • + NUnit2049 +
      • +
      • + NUnit2050 +
      • NUnit3001
      • diff --git a/articles/toc.json b/articles/toc.json index 1bbaa3e2e..e17e1a283 100644 --- a/articles/toc.json +++ b/articles/toc.json @@ -1,2 +1,2 @@ -{"items":[{"name":"NUnit","href":"nunit/intro.html","topicHref":"nunit/intro.html","includedFrom":"~/articles/nunit/toc.yml","items":[{"name":"Introduction","href":"nunit/intro.html","topicHref":"nunit/intro.html"},{"name":"NUnit 4 plans","href":"nunit/Towards-NUnit4.html","topicHref":"nunit/Towards-NUnit4.html"},{"name":"Migration Guidance","href":"nunit/release-notes/Nunit4.0-MigrationGuide.html","topicHref":"nunit/release-notes/Nunit4.0-MigrationGuide.html","topicUid":"migrationguidance"},{"name":"Release Notes","href":"nunit/release-notes/framework.html","topicHref":"nunit/release-notes/framework.html","includedFrom":"~/articles/nunit/release-notes/toc.yml","items":[{"name":"Framework","href":"nunit/release-notes/framework.html","topicHref":"nunit/release-notes/framework.html"},{"name":"Console and Engine","href":"nunit-engine/release-notes.html","topicHref":"nunit-engine/release-notes.html","topicUid":"consoleenginereleasenotes"},{"name":"Migration Guidance","href":"nunit/release-notes/Nunit4.0-MigrationGuide.html","topicHref":"nunit/release-notes/Nunit4.0-MigrationGuide.html","topicUid":"migrationguidance"},{"name":"Breaking Changes","href":"nunit/release-notes/breaking-changes.html","topicHref":"nunit/release-notes/breaking-changes.html","topicUid":"breakingchanges"},{"name":"Pre-3.5 Release notes","href":"nunit/release-notes/Pre-3.5-Release-Notes.html","topicHref":"nunit/release-notes/Pre-3.5-Release-Notes.html"}]},{"name":"License","href":"nunit/license.html","topicHref":"nunit/license.html"},{"name":"Getting Started","href":"nunit/getting-started/installation.html","topicHref":"nunit/getting-started/installation.html","includedFrom":"~/articles/nunit/getting-started/toc.yml","items":[{"name":"Installation","href":"nunit/getting-started/installation.html","topicHref":"nunit/getting-started/installation.html"},{"name":"Upgrading","href":"nunit/getting-started/upgrading.html","topicHref":"nunit/getting-started/upgrading.html"},{"name":"Samples","href":"nunit/getting-started/samples.html","topicHref":"nunit/getting-started/samples.html"},{"name":"Breaking Changes","href":"nunit/release-notes/breaking-changes.html","topicHref":"nunit/release-notes/breaking-changes.html","topicUid":"breakingchanges"},{"name":".NET Core and .NET Standard","href":"nunit/getting-started/dotnet-core-and-dotnet-standard.html","topicHref":"nunit/getting-started/dotnet-core-and-dotnet-standard.html"}]},{"name":"Writing Tests","href":"nunit/writing-tests/attributes.html","topicHref":"nunit/writing-tests/attributes.html","includedFrom":"~/articles/nunit/writing-tests/toc.yml","items":[{"name":"Attributes","href":"nunit/writing-tests/attributes.html","topicHref":"nunit/writing-tests/attributes.html"},{"name":"Attribute Descriptions","href":"nunit/writing-tests/attributes/apartment.html","topicHref":"nunit/writing-tests/attributes/apartment.html","includedFrom":"~/articles/nunit/writing-tests/attributes/toc.yml","items":[{"name":"[Apartment]","href":"nunit/writing-tests/attributes/apartment.html","topicHref":"nunit/writing-tests/attributes/apartment.html"},{"name":"[Author]","href":"nunit/writing-tests/attributes/author.html","topicHref":"nunit/writing-tests/attributes/author.html"},{"name":"[Category]","href":"nunit/writing-tests/attributes/category.html","topicHref":"nunit/writing-tests/attributes/category.html"},{"name":"[Combinatorial]","href":"nunit/writing-tests/attributes/combinatorial.html","topicHref":"nunit/writing-tests/attributes/combinatorial.html"},{"name":"[Culture]","href":"nunit/writing-tests/attributes/culture.html","topicHref":"nunit/writing-tests/attributes/culture.html"},{"name":"[Datapoint]","href":"nunit/writing-tests/attributes/datapoint.html","topicHref":"nunit/writing-tests/attributes/datapoint.html"},{"name":"[DatapointSource]","href":"nunit/writing-tests/attributes/datapointsource.html","topicHref":"nunit/writing-tests/attributes/datapointsource.html"},{"name":"[DefaultFloatingPointTolerance]","href":"nunit/writing-tests/attributes/defaultfloatingpointtolerance.html","topicHref":"nunit/writing-tests/attributes/defaultfloatingpointtolerance.html"},{"name":"[Description]","href":"nunit/writing-tests/attributes/description.html","topicHref":"nunit/writing-tests/attributes/description.html"},{"name":"[Explicit]","href":"nunit/writing-tests/attributes/explicit.html","topicHref":"nunit/writing-tests/attributes/explicit.html"},{"name":"[FixtureLifeCycle]","href":"nunit/writing-tests/attributes/fixturelifecycle.html","topicHref":"nunit/writing-tests/attributes/fixturelifecycle.html"},{"name":"[Ignore]","href":"nunit/writing-tests/attributes/ignore.html","topicHref":"nunit/writing-tests/attributes/ignore.html"},{"name":"[LevelOfParallelism]","href":"nunit/writing-tests/attributes/levelofparallelism.html","topicHref":"nunit/writing-tests/attributes/levelofparallelism.html"},{"name":"[MaxTime]","href":"nunit/writing-tests/attributes/maxtime.html","topicHref":"nunit/writing-tests/attributes/maxtime.html"},{"name":"[NonTestAssembly]","href":"nunit/writing-tests/attributes/nontestassembly.html","topicHref":"nunit/writing-tests/attributes/nontestassembly.html"},{"name":"[OneTimeSetUp]","href":"nunit/writing-tests/attributes/onetimesetup.html","topicHref":"nunit/writing-tests/attributes/onetimesetup.html"},{"name":"[OneTimeTearDown]","href":"nunit/writing-tests/attributes/onetimeteardown.html","topicHref":"nunit/writing-tests/attributes/onetimeteardown.html"},{"name":"[Order]","href":"nunit/writing-tests/attributes/order.html","topicHref":"nunit/writing-tests/attributes/order.html"},{"name":"[Pairwise]","href":"nunit/writing-tests/attributes/pairwise.html","topicHref":"nunit/writing-tests/attributes/pairwise.html"},{"name":"[Parallelizable]","href":"nunit/writing-tests/attributes/parallelizable.html","topicHref":"nunit/writing-tests/attributes/parallelizable.html"},{"name":"[NonParallelizable]","href":"nunit/writing-tests/attributes/nonparallelizable.html","topicHref":"nunit/writing-tests/attributes/nonparallelizable.html"},{"name":"[Platform]","href":"nunit/writing-tests/attributes/platform.html","topicHref":"nunit/writing-tests/attributes/platform.html"},{"name":"[Property]","href":"nunit/writing-tests/attributes/property.html","topicHref":"nunit/writing-tests/attributes/property.html"},{"name":"[Random]","href":"nunit/writing-tests/attributes/random.html","topicHref":"nunit/writing-tests/attributes/random.html"},{"name":"[Range]","href":"nunit/writing-tests/attributes/range.html","topicHref":"nunit/writing-tests/attributes/range.html"},{"name":"[Repeat]","href":"nunit/writing-tests/attributes/repeat.html","topicHref":"nunit/writing-tests/attributes/repeat.html"},{"name":"[RequiresThread]","href":"nunit/writing-tests/attributes/requiresthread.html","topicHref":"nunit/writing-tests/attributes/requiresthread.html"},{"name":"[Retry]","href":"nunit/writing-tests/attributes/retry.html","topicHref":"nunit/writing-tests/attributes/retry.html"},{"name":"[Sequential]","href":"nunit/writing-tests/attributes/sequential.html","topicHref":"nunit/writing-tests/attributes/sequential.html"},{"name":"[SetCulture]","href":"nunit/writing-tests/attributes/setculture.html","topicHref":"nunit/writing-tests/attributes/setculture.html"},{"name":"[SetUICulture]","href":"nunit/writing-tests/attributes/setuiculture.html","topicHref":"nunit/writing-tests/attributes/setuiculture.html"},{"name":"[Setup]","href":"nunit/writing-tests/attributes/setup.html","topicHref":"nunit/writing-tests/attributes/setup.html"},{"name":"[SetUpFixture]","href":"nunit/writing-tests/attributes/setupfixture.html","topicHref":"nunit/writing-tests/attributes/setupfixture.html"},{"name":"[SingleThreaded]","href":"nunit/writing-tests/attributes/singlethreaded.html","topicHref":"nunit/writing-tests/attributes/singlethreaded.html"},{"name":"[TearDown]","href":"nunit/writing-tests/attributes/teardown.html","topicHref":"nunit/writing-tests/attributes/teardown.html"},{"name":"[Test]","href":"nunit/writing-tests/attributes/test.html","topicHref":"nunit/writing-tests/attributes/test.html"},{"name":"[TestCase]","href":"nunit/writing-tests/attributes/testcase.html","topicHref":"nunit/writing-tests/attributes/testcase.html"},{"name":"[TestCaseSource]","href":"nunit/writing-tests/attributes/testcasesource.html","topicHref":"nunit/writing-tests/attributes/testcasesource.html"},{"name":"[TestFixture]","href":"nunit/writing-tests/attributes/testfixture.html","topicHref":"nunit/writing-tests/attributes/testfixture.html"},{"name":"[TestFixtureSetUp]","href":"nunit/writing-tests/attributes/testfixturesetup.html","topicHref":"nunit/writing-tests/attributes/testfixturesetup.html"},{"name":"[TestFixtureSource]","href":"nunit/writing-tests/attributes/testfixturesource.html","topicHref":"nunit/writing-tests/attributes/testfixturesource.html"},{"name":"[TestFixtureTearDown]","href":"nunit/writing-tests/attributes/testfixtureteardown.html","topicHref":"nunit/writing-tests/attributes/testfixtureteardown.html"},{"name":"[TestOf]","href":"nunit/writing-tests/attributes/testof.html","topicHref":"nunit/writing-tests/attributes/testof.html"},{"name":"[Theory]","href":"nunit/writing-tests/attributes/theory.html","topicHref":"nunit/writing-tests/attributes/theory.html"},{"name":"[Timeout]","href":"nunit/writing-tests/attributes/timeout.html","topicHref":"nunit/writing-tests/attributes/timeout.html"},{"name":"[Values]","href":"nunit/writing-tests/attributes/values.html","topicHref":"nunit/writing-tests/attributes/values.html"},{"name":"[ValueSource]","href":"nunit/writing-tests/attributes/valuesource.html","topicHref":"nunit/writing-tests/attributes/valuesource.html"}]},{"name":"Assertions","href":"nunit/writing-tests/assertions/assertions.html","topicHref":"nunit/writing-tests/assertions/assertions.html","includedFrom":"~/articles/nunit/writing-tests/assertions/toc.yml","items":[{"name":"Assertions","href":"nunit/writing-tests/assertions/assertions.html","topicHref":"nunit/writing-tests/assertions/assertions.html"},{"name":"Assertion Models","href":"nunit/writing-tests/assertions/assertion-models/classic.html","topicHref":"nunit/writing-tests/assertions/assertion-models/classic.html","includedFrom":"~/articles/nunit/writing-tests/assertions/assertion-models/toc.yml","items":[{"name":"Constraint Model (Assert.That)","href":"nunit/writing-tests/assertions/assertion-models/constraint.html","topicHref":"nunit/writing-tests/assertions/assertion-models/constraint.html"},{"name":"Special Asserts","href":"nunit/writing-tests/assertions/assertion-models/special.html","topicHref":"nunit/writing-tests/assertions/assertion-models/special.html"},{"name":"Classic Model","href":"nunit/writing-tests/assertions/assertion-models/classic.html","topicHref":"nunit/writing-tests/assertions/assertion-models/classic.html"}]},{"name":"Multiple Asserts","href":"nunit/writing-tests/assertions/multiple-asserts.html","topicHref":"nunit/writing-tests/assertions/multiple-asserts.html"},{"name":"Special Assertions","includedFrom":"~/articles/nunit/writing-tests/assertions/special-assertions/toc.yml","items":[{"name":"Assert.Pass","href":"nunit/writing-tests/assertions/special-assertions/Assert.Pass.html","topicHref":"nunit/writing-tests/assertions/special-assertions/Assert.Pass.html"},{"name":"Assert.Fail","href":"nunit/writing-tests/assertions/special-assertions/Assert.Fail.html","topicHref":"nunit/writing-tests/assertions/special-assertions/Assert.Fail.html"},{"name":"Assert.Ignore","href":"nunit/writing-tests/assertions/special-assertions/Assert.Ignore.html","topicHref":"nunit/writing-tests/assertions/special-assertions/Assert.Ignore.html"},{"name":"Assert.Inconclusive","href":"nunit/writing-tests/assertions/special-assertions/Assert.Inconclusive.html","topicHref":"nunit/writing-tests/assertions/special-assertions/Assert.Inconclusive.html"}]},{"name":"Classic Assertions","includedFrom":"~/articles/nunit/writing-tests/assertions/classic-assertions/toc.yml","items":[{"name":"ClassicAssert.True","href":"nunit/writing-tests/assertions/classic-assertions/Assert.True.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.True.html"},{"name":"ClassicAssert.False","href":"nunit/writing-tests/assertions/classic-assertions/Assert.False.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.False.html"},{"name":"ClassicAssert.Null","href":"nunit/writing-tests/assertions/classic-assertions/Assert.Null.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.Null.html"},{"name":"ClassicAssert.NotNull","href":"nunit/writing-tests/assertions/classic-assertions/Assert.NotNull.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.NotNull.html"},{"name":"ClassicAssert.Zero","href":"nunit/writing-tests/assertions/classic-assertions/Assert.Zero.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.Zero.html"},{"name":"ClassicAssert.NotZero","href":"nunit/writing-tests/assertions/classic-assertions/Assert.NotZero.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.NotZero.html"},{"name":"ClassicAssert.IsNaN","href":"nunit/writing-tests/assertions/classic-assertions/Assert.IsNaN.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.IsNaN.html"},{"name":"ClassicAssert.IsEmpty","href":"nunit/writing-tests/assertions/classic-assertions/Assert.IsEmpty.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.IsEmpty.html"},{"name":"ClassicAssert.IsNotEmpty","href":"nunit/writing-tests/assertions/classic-assertions/Assert.IsNotEmpty.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.IsNotEmpty.html"},{"name":"ClassicAssert.AreEqual","href":"nunit/writing-tests/assertions/classic-assertions/Assert.AreEqual.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.AreEqual.html"},{"name":"ClassicAssert.AreNotEqual","href":"nunit/writing-tests/assertions/classic-assertions/Assert.AreNotEqual.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.AreNotEqual.html"},{"name":"ClassicAssert.AreSame","href":"nunit/writing-tests/assertions/classic-assertions/Assert.AreSame.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.AreSame.html"},{"name":"ClassicAssert.AreNotSame","href":"nunit/writing-tests/assertions/classic-assertions/Assert.AreNotSame.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.AreNotSame.html"},{"name":"ClassicAssert.Contains","href":"nunit/writing-tests/assertions/classic-assertions/Assert.Contains.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.Contains.html"},{"name":"ClassicAssert.Greater","href":"nunit/writing-tests/assertions/classic-assertions/Assert.Greater.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.Greater.html"},{"name":"ClassicAssert.GreaterOrEqual","href":"nunit/writing-tests/assertions/classic-assertions/Assert.GreaterOrEqual.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.GreaterOrEqual.html"},{"name":"ClassicAssert.Less","href":"nunit/writing-tests/assertions/classic-assertions/Assert.Less.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.Less.html"},{"name":"ClassicAssert.LessOrEqual","href":"nunit/writing-tests/assertions/classic-assertions/Assert.LessOrEqual.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.LessOrEqual.html"},{"name":"ClassicAssert.Positive","href":"nunit/writing-tests/assertions/classic-assertions/Assert.Positive.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.Positive.html"},{"name":"ClassicAssert.Negative","href":"nunit/writing-tests/assertions/classic-assertions/Assert.Negative.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.Negative.html"},{"name":"ClassicAssert.IsInstanceOf","href":"nunit/writing-tests/assertions/classic-assertions/Assert.IsInstanceOf.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.IsInstanceOf.html"},{"name":"ClassicAssert.IsNotInstanceOf","href":"nunit/writing-tests/assertions/classic-assertions/Assert.IsNotInstanceOf.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.IsNotInstanceOf.html"},{"name":"ClassicAssert.IsAssignableFrom","href":"nunit/writing-tests/assertions/classic-assertions/Assert.IsAssignableFrom.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.IsAssignableFrom.html"},{"name":"ClassicAssert.IsNotAssignableFrom","href":"nunit/writing-tests/assertions/classic-assertions/Assert.IsNotAssignableFrom.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.IsNotAssignableFrom.html"},{"name":"Assert.Throws","href":"nunit/writing-tests/assertions/classic-assertions/Assert.Throws.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.Throws.html"},{"name":"Assert.ThrowsAsync","href":"nunit/writing-tests/assertions/classic-assertions/Assert.ThrowsAsync.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.ThrowsAsync.html"},{"name":"Assert.DoesNotThrow","href":"nunit/writing-tests/assertions/classic-assertions/Assert.DoesNotThrow.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.DoesNotThrow.html"},{"name":"Assert.DoesNotThrowAsync","href":"nunit/writing-tests/assertions/classic-assertions/Assert.DoesNotThrowAsync.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.DoesNotThrowAsync.html"},{"name":"Assert.Catch","href":"nunit/writing-tests/assertions/classic-assertions/Assert.Catch.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.Catch.html"},{"name":"Assert.CatchAsync","href":"nunit/writing-tests/assertions/classic-assertions/Assert.CatchAsync.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.CatchAsync.html"},{"name":"String Assert","href":"nunit/writing-tests/assertions/classic-assertions/String-Assert.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/String-Assert.html"},{"name":"Collection Assert","href":"nunit/writing-tests/assertions/classic-assertions/Collection-Assert.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Collection-Assert.html"},{"name":"File Assert","href":"nunit/writing-tests/assertions/classic-assertions/File-Assert.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/File-Assert.html"},{"name":"Directory Assert","href":"nunit/writing-tests/assertions/classic-assertions/Directory-Assert.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Directory-Assert.html"}]}]},{"name":"Assumptions","href":"nunit/writing-tests/Assumptions.html","topicHref":"nunit/writing-tests/Assumptions.html"},{"name":"Warnings","href":"nunit/writing-tests/Warnings.html","topicHref":"nunit/writing-tests/Warnings.html"},{"name":"Constraints","href":"nunit/writing-tests/constraints/Constraints.html","topicHref":"nunit/writing-tests/constraints/Constraints.html","includedFrom":"~/articles/nunit/writing-tests/constraints/toc.yml","items":[{"name":"Constraints","href":"nunit/writing-tests/constraints/Constraints.html","topicHref":"nunit/writing-tests/constraints/Constraints.html"},{"name":"AllItemsConstraint","href":"nunit/writing-tests/constraints/AllItemsConstraint.html","topicHref":"nunit/writing-tests/constraints/AllItemsConstraint.html"},{"name":"AndConstraint","href":"nunit/writing-tests/constraints/AndConstraint.html","topicHref":"nunit/writing-tests/constraints/AndConstraint.html"},{"name":"AnyOfConstraint","href":"nunit/writing-tests/constraints/AnyOfConstraint.html","topicHref":"nunit/writing-tests/constraints/AnyOfConstraint.html"},{"name":"AssignableFromConstraint","href":"nunit/writing-tests/constraints/AssignableFromConstraint.html","topicHref":"nunit/writing-tests/constraints/AssignableFromConstraint.html"},{"name":"AssignableToConstraint","href":"nunit/writing-tests/constraints/AssignableToConstraint.html","topicHref":"nunit/writing-tests/constraints/AssignableToConstraint.html"},{"name":"AttributeConstraint","href":"nunit/writing-tests/constraints/AttributeConstraint.html","topicHref":"nunit/writing-tests/constraints/AttributeConstraint.html"},{"name":"AttributeExistsConstraint","href":"nunit/writing-tests/constraints/AttributeExistsConstraint.html","topicHref":"nunit/writing-tests/constraints/AttributeExistsConstraint.html"},{"name":"BinarySerializableConstraint","href":"nunit/writing-tests/constraints/BinarySerializableConstraint.html","topicHref":"nunit/writing-tests/constraints/BinarySerializableConstraint.html"},{"name":"CollectionContainsConstraint","href":"nunit/writing-tests/constraints/CollectionContainsConstraint.html","topicHref":"nunit/writing-tests/constraints/CollectionContainsConstraint.html"},{"name":"CollectionEquivalentConstraint","href":"nunit/writing-tests/constraints/CollectionEquivalentConstraint.html","topicHref":"nunit/writing-tests/constraints/CollectionEquivalentConstraint.html"},{"name":"CollectionOrderedConstraint","href":"nunit/writing-tests/constraints/CollectionOrderedConstraint.html","topicHref":"nunit/writing-tests/constraints/CollectionOrderedConstraint.html"},{"name":"CollectionSubsetConstraint","href":"nunit/writing-tests/constraints/CollectionSubsetConstraint.html","topicHref":"nunit/writing-tests/constraints/CollectionSubsetConstraint.html"},{"name":"CollectionSupersetConstraint","href":"nunit/writing-tests/constraints/CollectionSupersetConstraint.html","topicHref":"nunit/writing-tests/constraints/CollectionSupersetConstraint.html"},{"name":"DelayedConstraint","href":"nunit/writing-tests/constraints/DelayedConstraint.html","topicHref":"nunit/writing-tests/constraints/DelayedConstraint.html"},{"name":"DictionaryContainsKeyConstraint","href":"nunit/writing-tests/constraints/DictionaryContainsKeyConstraint.html","topicHref":"nunit/writing-tests/constraints/DictionaryContainsKeyConstraint.html"},{"name":"DictionaryContainsKeyValuePairConstraint","href":"nunit/writing-tests/constraints/DictionaryContainsKeyValuePairConstraint.html","topicHref":"nunit/writing-tests/constraints/DictionaryContainsKeyValuePairConstraint.html"},{"name":"DictionaryContainsValueConstraint","href":"nunit/writing-tests/constraints/DictionaryContainsValueConstraint.html","topicHref":"nunit/writing-tests/constraints/DictionaryContainsValueConstraint.html"},{"name":"EmptyCollectionConstraint","href":"nunit/writing-tests/constraints/EmptyCollectionConstraint.html","topicHref":"nunit/writing-tests/constraints/EmptyCollectionConstraint.html"},{"name":"EmptyConstraint","href":"nunit/writing-tests/constraints/EmptyConstraint.html","topicHref":"nunit/writing-tests/constraints/EmptyConstraint.html"},{"name":"EmptyDirectoryConstraint","href":"nunit/writing-tests/constraints/EmptyDirectoryConstraint.html","topicHref":"nunit/writing-tests/constraints/EmptyDirectoryConstraint.html"},{"name":"EmptyStringConstraint","href":"nunit/writing-tests/constraints/EmptyStringConstraint.html","topicHref":"nunit/writing-tests/constraints/EmptyStringConstraint.html"},{"name":"EndsWithConstraint","href":"nunit/writing-tests/constraints/EndsWithConstraint.html","topicHref":"nunit/writing-tests/constraints/EndsWithConstraint.html"},{"name":"EqualConstraint","href":"nunit/writing-tests/constraints/EqualConstraint.html","topicHref":"nunit/writing-tests/constraints/EqualConstraint.html"},{"name":"ExactCountConstraint","href":"nunit/writing-tests/constraints/ExactCountConstraint.html","topicHref":"nunit/writing-tests/constraints/ExactCountConstraint.html"},{"name":"ExactTypeConstraint","href":"nunit/writing-tests/constraints/ExactTypeConstraint.html","topicHref":"nunit/writing-tests/constraints/ExactTypeConstraint.html"},{"name":"FalseConstraint","href":"nunit/writing-tests/constraints/FalseConstraint.html","topicHref":"nunit/writing-tests/constraints/FalseConstraint.html"},{"name":"FileOrDirectoryExistsConstraint","href":"nunit/writing-tests/constraints/FileOrDirectoryExistsConstraint.html","topicHref":"nunit/writing-tests/constraints/FileOrDirectoryExistsConstraint.html"},{"name":"GreaterThanConstraint","href":"nunit/writing-tests/constraints/GreaterThanConstraint.html","topicHref":"nunit/writing-tests/constraints/GreaterThanConstraint.html"},{"name":"GreaterThanOrEqualConstraint","href":"nunit/writing-tests/constraints/GreaterThanOrEqualConstraint.html","topicHref":"nunit/writing-tests/constraints/GreaterThanOrEqualConstraint.html"},{"name":"InstanceOfTypeConstraint","href":"nunit/writing-tests/constraints/InstanceOfTypeConstraint.html","topicHref":"nunit/writing-tests/constraints/InstanceOfTypeConstraint.html"},{"name":"LessThanConstraint","href":"nunit/writing-tests/constraints/LessThanConstraint.html","topicHref":"nunit/writing-tests/constraints/LessThanConstraint.html"},{"name":"LessThanOrEqualConstraint","href":"nunit/writing-tests/constraints/LessThanOrEqualConstraint.html","topicHref":"nunit/writing-tests/constraints/LessThanOrEqualConstraint.html"},{"name":"NaNConstraint","href":"nunit/writing-tests/constraints/NaNConstraint.html","topicHref":"nunit/writing-tests/constraints/NaNConstraint.html"},{"name":"NoItemConstraint","href":"nunit/writing-tests/constraints/NoItemConstraint.html","topicHref":"nunit/writing-tests/constraints/NoItemConstraint.html"},{"name":"NotConstraint","href":"nunit/writing-tests/constraints/NotConstraint.html","topicHref":"nunit/writing-tests/constraints/NotConstraint.html"},{"name":"NullConstraint","href":"nunit/writing-tests/constraints/NullConstraint.html","topicHref":"nunit/writing-tests/constraints/NullConstraint.html"},{"name":"OrConstraint","href":"nunit/writing-tests/constraints/OrConstraint.html","topicHref":"nunit/writing-tests/constraints/OrConstraint.html"},{"name":"PropertyConstraint","href":"nunit/writing-tests/constraints/PropertyConstraint.html","topicHref":"nunit/writing-tests/constraints/PropertyConstraint.html"},{"name":"PropertyExistsConstraint","href":"nunit/writing-tests/constraints/PropertyExistsConstraint.html","topicHref":"nunit/writing-tests/constraints/PropertyExistsConstraint.html"},{"name":"RangeConstraint","href":"nunit/writing-tests/constraints/RangeConstraint.html","topicHref":"nunit/writing-tests/constraints/RangeConstraint.html"},{"name":"RegexConstraint","href":"nunit/writing-tests/constraints/RegexConstraint.html","topicHref":"nunit/writing-tests/constraints/RegexConstraint.html"},{"name":"ReusableConstraint","href":"nunit/writing-tests/constraints/ReusableConstraint.html","topicHref":"nunit/writing-tests/constraints/ReusableConstraint.html"},{"name":"SameAsConstraint","href":"nunit/writing-tests/constraints/SameAsConstraint.html","topicHref":"nunit/writing-tests/constraints/SameAsConstraint.html"},{"name":"SamePathConstraint","href":"nunit/writing-tests/constraints/SamePathConstraint.html","topicHref":"nunit/writing-tests/constraints/SamePathConstraint.html"},{"name":"SamePathOrUnderConstraint","href":"nunit/writing-tests/constraints/SamePathOrUnderConstraint.html","topicHref":"nunit/writing-tests/constraints/SamePathOrUnderConstraint.html"},{"name":"SomeItemsConstraint","href":"nunit/writing-tests/constraints/SomeItemsConstraint.html","topicHref":"nunit/writing-tests/constraints/SomeItemsConstraint.html"},{"name":"StartsWithConstraint","href":"nunit/writing-tests/constraints/StartsWithConstraint.html","topicHref":"nunit/writing-tests/constraints/StartsWithConstraint.html"},{"name":"SubPathConstraint","href":"nunit/writing-tests/constraints/SubPathConstraint.html","topicHref":"nunit/writing-tests/constraints/SubPathConstraint.html"},{"name":"SubstringConstraint","href":"nunit/writing-tests/constraints/SubstringConstraint.html","topicHref":"nunit/writing-tests/constraints/SubstringConstraint.html"},{"name":"ThrowsConstraint","href":"nunit/writing-tests/constraints/ThrowsConstraint.html","topicHref":"nunit/writing-tests/constraints/ThrowsConstraint.html"},{"name":"ThrowsNothingConstraint","href":"nunit/writing-tests/constraints/ThrowsNothingConstraint.html","topicHref":"nunit/writing-tests/constraints/ThrowsNothingConstraint.html"},{"name":"TrueConstraint","href":"nunit/writing-tests/constraints/TrueConstraint.html","topicHref":"nunit/writing-tests/constraints/TrueConstraint.html"},{"name":"UniqueItemsConstraint","href":"nunit/writing-tests/constraints/UniqueItemsConstraint.html","topicHref":"nunit/writing-tests/constraints/UniqueItemsConstraint.html"},{"name":"WhiteSpaceConstraint","href":"nunit/writing-tests/constraints/WhiteSpaceConstraint.html","topicHref":"nunit/writing-tests/constraints/WhiteSpaceConstraint.html"},{"name":"XmlSerializableConstraint","href":"nunit/writing-tests/constraints/XmlSerializableConstraint.html","topicHref":"nunit/writing-tests/constraints/XmlSerializableConstraint.html"}]},{"name":"[SetUp] and [TearDown]","href":"nunit/writing-tests/setup-teardown/index.html","topicHref":"nunit/writing-tests/setup-teardown/index.html","includedFrom":"~/articles/nunit/writing-tests/setup-teardown/toc.yml","items":[{"name":"Index","href":"nunit/writing-tests/setup-teardown/index.html","topicHref":"nunit/writing-tests/setup-teardown/index.html"},{"name":"Changes 2.6.x --> 3.x","href":"nunit/writing-tests/setup-teardown/SetUp-and-TearDown-Changes.html","topicHref":"nunit/writing-tests/setup-teardown/SetUp-and-TearDown-Changes.html"}]},{"name":"TestCaseData","href":"nunit/writing-tests/TestCaseData.html","topicHref":"nunit/writing-tests/TestCaseData.html"},{"name":"TestFixtureData","href":"nunit/writing-tests/TestFixtureData.html","topicHref":"nunit/writing-tests/TestFixtureData.html"},{"name":"TestContext","href":"nunit/writing-tests/TestContext.html","topicHref":"nunit/writing-tests/TestContext.html"},{"name":"AssertionHelper","href":"nunit/writing-tests/AssertionHelper.html","topicHref":"nunit/writing-tests/AssertionHelper.html"},{"name":"ListMapper","href":"nunit/writing-tests/ListMapper.html","topicHref":"nunit/writing-tests/ListMapper.html"},{"name":"Randomizer Methods","href":"nunit/writing-tests/Randomizer-Methods.html","topicHref":"nunit/writing-tests/Randomizer-Methods.html"}]},{"name":"Running Tests","href":"nunit/running-tests/Index.html","topicHref":"nunit/running-tests/Index.html","includedFrom":"~/articles/nunit/running-tests/toc.yml","items":[{"name":"Console Runner","href":"nunit/running-tests/Console-Runner.html","topicHref":"nunit/running-tests/Console-Runner.html"},{"name":"Console Command Line","href":"nunit/running-tests/Console-Command-Line.html","topicHref":"nunit/running-tests/Console-Command-Line.html"},{"name":"NUnit Test Projects","href":"nunit/running-tests/NUnit-Test-Projects.html","topicHref":"nunit/running-tests/NUnit-Test-Projects.html"},{"name":"NUnitLite Runner","href":"nunit/running-tests/NUnitLite-Runner.html","topicHref":"nunit/running-tests/NUnitLite-Runner.html"},{"name":"NUnitLite Options","href":"nunit/running-tests/NUnitLite-Options.html","topicHref":"nunit/running-tests/NUnitLite-Options.html"},{"name":"Template Based Test Naming","href":"nunit/running-tests/Template-Based-Test-Naming.html","topicHref":"nunit/running-tests/Template-Based-Test-Naming.html"},{"name":"Test Selection Language","href":"nunit/running-tests/Test-Selection-Language.html","topicHref":"nunit/running-tests/Test-Selection-Language.html"}]},{"name":"Extending NUnit","href":"nunit/extending-nunit/Index.html","topicHref":"nunit/extending-nunit/Index.html","includedFrom":"~/articles/nunit/extending-nunit/toc.yml","items":[{"name":"Engine Extensibility","xref":"engineextensionsindex"},{"name":"Framework Extensibility","href":"nunit/extending-nunit/Framework-Extensibility.html","topicHref":"nunit/extending-nunit/Framework-Extensibility.html","items":[{"name":"Action Attributes","href":"nunit/extending-nunit/Action-Attributes.html","topicHref":"nunit/extending-nunit/Action-Attributes.html"},{"name":"Custom Attributes","href":"nunit/extending-nunit/Custom-Attributes.html","topicHref":"nunit/extending-nunit/Custom-Attributes.html","items":[{"name":"IApplyToContext Interface","href":"nunit/extending-nunit/IApplyToContext-Interface.html","topicHref":"nunit/extending-nunit/IApplyToContext-Interface.html"},{"name":"IApplyToTest Interface","href":"nunit/extending-nunit/IApplyToTest-Interface.html","topicHref":"nunit/extending-nunit/IApplyToTest-Interface.html"},{"name":"ICommandWrapper Interface","href":"nunit/extending-nunit/ICommandWrapper-Interface.html","topicHref":"nunit/extending-nunit/ICommandWrapper-Interface.html"},{"name":"IFixtureBuilder Interface","href":"nunit/extending-nunit/IFixtureBuilder-Interface.html","topicHref":"nunit/extending-nunit/IFixtureBuilder-Interface.html"},{"name":"IImplyFixture Interface","href":"nunit/extending-nunit/IImplyFixture-Interface.html","topicHref":"nunit/extending-nunit/IImplyFixture-Interface.html"},{"name":"IParameterDataSource Interface","href":"nunit/extending-nunit/IParameterDataSource-Interface.html","topicHref":"nunit/extending-nunit/IParameterDataSource-Interface.html"},{"name":"ISimpleTestBuilder Interface","href":"nunit/extending-nunit/ISimpleTestBuilder-Interface.html","topicHref":"nunit/extending-nunit/ISimpleTestBuilder-Interface.html"},{"name":"ITestBuilder Interface","href":"nunit/extending-nunit/ITestBuilder-Interface.html","topicHref":"nunit/extending-nunit/ITestBuilder-Interface.html"}]},{"name":"Custom Constraints","href":"nunit/extending-nunit/Custom-Constraints.html","topicHref":"nunit/extending-nunit/Custom-Constraints.html"}]}]},{"name":"Technical Notes","href":"nunit/technical-notes/usage/Usage-Notes.html","topicHref":"nunit/technical-notes/usage/Usage-Notes.html","includedFrom":"~/articles/nunit/technical-notes/toc.yml","items":[{"name":"Usage Notes","href":"nunit/technical-notes/usage/Usage-Notes.html","topicHref":"nunit/technical-notes/usage/Usage-Notes.html","includedFrom":"~/articles/nunit/technical-notes/usage/toc.yml","items":[{"name":"Usage Notes","href":"nunit/technical-notes/usage/Usage-Notes.html","topicHref":"nunit/technical-notes/usage/Usage-Notes.html"},{"name":"Addin Replacement in the Framework","href":"nunit/technical-notes/usage/Addin-Replacement-in-the-Framework.html","topicHref":"nunit/technical-notes/usage/Addin-Replacement-in-the-Framework.html"},{"name":"Assembly Isolation","href":"nunit/technical-notes/usage/Assembly-Isolation.html","topicHref":"nunit/technical-notes/usage/Assembly-Isolation.html"},{"name":"Configuration Files","href":"nunit/technical-notes/usage/Configuration-Files.html","topicHref":"nunit/technical-notes/usage/Configuration-Files.html"},{"name":"Counting Tests","href":"nunit/technical-notes/usage/Counting-Tests.html","topicHref":"nunit/technical-notes/usage/Counting-Tests.html"},{"name":"Engine Parallel Test Execution","href":"nunit/technical-notes/usage/Engine-Parallel-Test-Execution.html","topicHref":"nunit/technical-notes/usage/Engine-Parallel-Test-Execution.html"},{"name":"Framework Parallel Test Execution","href":"nunit/technical-notes/usage/Framework-Parallel-Test-Execution.html","topicHref":"nunit/technical-notes/usage/Framework-Parallel-Test-Execution.html"},{"name":"NUnit Project XML Format","href":"nunit/technical-notes/usage/NUnit-Project-XML-Format.html","topicHref":"nunit/technical-notes/usage/NUnit-Project-XML-Format.html"},{"name":"Parameterized Tests","href":"nunit/technical-notes/usage/Parameterized-Tests.html","topicHref":"nunit/technical-notes/usage/Parameterized-Tests.html"},{"name":"Platform Selection","href":"nunit/technical-notes/usage/Platform-Selection.html","topicHref":"nunit/technical-notes/usage/Platform-Selection.html"},{"name":"Runtime Selection","href":"nunit/technical-notes/usage/Runtime-Selection.html","topicHref":"nunit/technical-notes/usage/Runtime-Selection.html"},{"name":"SetUp and TearDown","href":"nunit/technical-notes/usage/SetUp-and-TearDown.html","topicHref":"nunit/technical-notes/usage/SetUp-and-TearDown.html"},{"name":"Test Filters","href":"nunit/technical-notes/usage/Test-Filters.html","topicHref":"nunit/technical-notes/usage/Test-Filters.html"},{"name":"Test Result XML Format","href":"nunit/technical-notes/usage/Test-Result-XML-Format.html","topicHref":"nunit/technical-notes/usage/Test-Result-XML-Format.html"},{"name":"Visual Studio Support","href":"nunit/technical-notes/usage/Visual-Studio-Support.html","topicHref":"nunit/technical-notes/usage/Visual-Studio-Support.html"},{"name":"XML Formats","href":"nunit/technical-notes/usage/XML-Formats.html","topicHref":"nunit/technical-notes/usage/XML-Formats.html"}]},{"name":"NUnit Internals","href":"nunit/technical-notes/nunit-internals/NUnit-Internals.html","topicHref":"nunit/technical-notes/nunit-internals/NUnit-Internals.html","includedFrom":"~/articles/nunit/technical-notes/nunit-internals/toc.yml","items":[{"name":"NUnit Internals","href":"nunit/technical-notes/nunit-internals/NUnit-Internals.html","topicHref":"nunit/technical-notes/nunit-internals/NUnit-Internals.html"},{"name":"Architectural Overview","href":"nunit/technical-notes/nunit-internals/Architectural-Overview.html","topicHref":"nunit/technical-notes/nunit-internals/Architectural-Overview.html"},{"name":"NUnit APIs","href":"nunit/technical-notes/nunit-internals/NUnit-APIs.html","topicHref":"nunit/technical-notes/nunit-internals/NUnit-APIs.html","items":[{"name":"Test Engine API","xref":"testengineapi"},{"name":"Engine Driver API","xref":"frameworkdrivers"},{"name":"Framework API","href":"nunit/technical-notes/nunit-internals/Framework-Api.html","topicHref":"nunit/technical-notes/nunit-internals/Framework-Api.html"}]},{"name":"Framework Design","href":"nunit/technical-notes/nunit-internals/Framework-Design.html","topicHref":"nunit/technical-notes/nunit-internals/Framework-Design.html"},{"name":"Active Attributes","href":"nunit/technical-notes/nunit-internals/Active-Attributes.html","topicHref":"nunit/technical-notes/nunit-internals/Active-Attributes.html"},{"name":"Attribute Hierarchy","href":"nunit/technical-notes/nunit-internals/Attribute-Hierarchy.html","topicHref":"nunit/technical-notes/nunit-internals/Attribute-Hierarchy.html"},{"name":"Test Discovery And Execution","href":"nunit/technical-notes/nunit-internals/Test-Discovery-And-Execution.html","topicHref":"nunit/technical-notes/nunit-internals/Test-Discovery-And-Execution.html"},{"name":"NUnit 3.0 Architecture (2009)","href":"nunit/technical-notes/nunit-internals/NUnit-3.0-Architecture-(2009).html","topicHref":"nunit/technical-notes/nunit-internals/NUnit-3.0-Architecture-(2009).html"},{"name":"Specifications","href":"nunit/technical-notes/nunit-internals/specs/Specifications.html","topicHref":"nunit/technical-notes/nunit-internals/specs/Specifications.html","includedFrom":"~/articles/nunit/technical-notes/nunit-internals/specs/toc.yml","items":[{"name":"Specifications","href":"nunit/technical-notes/nunit-internals/specs/Specifications.html","topicHref":"nunit/technical-notes/nunit-internals/specs/Specifications.html"},{"name":"Dynamic Test Cases Spec","href":"nunit/technical-notes/nunit-internals/specs/Dynamic-Test-Cases-Spec.html","topicHref":"nunit/technical-notes/nunit-internals/specs/Dynamic-Test-Cases-Spec.html"},{"name":"Engine Addins Spec","href":"nunit/technical-notes/nunit-internals/specs/Engine-Addins-Spec.html","topicHref":"nunit/technical-notes/nunit-internals/specs/Engine-Addins-Spec.html"},{"name":"Extended Constraint Syntax Spec","href":"nunit/technical-notes/nunit-internals/specs/Extended-Constraint-Syntax-Spec.html","topicHref":"nunit/technical-notes/nunit-internals/specs/Extended-Constraint-Syntax-Spec.html"},{"name":"Include and Exclude Attributes (Alternatives)","href":"nunit/technical-notes/nunit-internals/specs/Include%20and%20Exclude%20Attributes%20(Alternatives).html","topicHref":"nunit/technical-notes/nunit-internals/specs/Include%20and%20Exclude%20Attributes%20(Alternatives).html"},{"name":"Internal Trace Spec","href":"nunit/technical-notes/nunit-internals/specs/Internal-Trace-Spec.html","topicHref":"nunit/technical-notes/nunit-internals/specs/Internal-Trace-Spec.html"},{"name":"Parameterized Test Fixtures Spec","href":"nunit/technical-notes/nunit-internals/specs/Parameterized-Test-Fixtures-Spec.html","topicHref":"nunit/technical-notes/nunit-internals/specs/Parameterized-Test-Fixtures-Spec.html"},{"name":"Test Dependency Attribute Spec","href":"nunit/technical-notes/nunit-internals/specs/Test-Dependency-Attribute-Spec.html","topicHref":"nunit/technical-notes/nunit-internals/specs/Test-Dependency-Attribute-Spec.html"}]}]}]}]},{"name":"VS Test Adapter","href":"vs-test-adapter/Index.html","topicHref":"vs-test-adapter/Index.html","includedFrom":"~/articles/vs-test-adapter/toc.yml","items":[{"name":"Visual Studio Test Adapter","href":"vs-test-adapter/Index.html","topicHref":"vs-test-adapter/Index.html"},{"name":"Installation","href":"vs-test-adapter/Adapter-Installation.html","topicHref":"vs-test-adapter/Adapter-Installation.html"},{"name":"Usage","href":"vs-test-adapter/Usage.html","topicHref":"vs-test-adapter/Usage.html"},{"name":"Resources","href":"vs-test-adapter/Resources.html","topicHref":"vs-test-adapter/Resources.html"},{"name":"Known Problems","href":"vs-test-adapter/Known-Problems.html","topicHref":"vs-test-adapter/Known-Problems.html"},{"name":"Configuration with runsettings","href":"vs-test-adapter/Tips-And-Tricks.html","topicHref":"vs-test-adapter/Tips-And-Tricks.html"},{"name":"Trace And Debug Output","href":"vs-test-adapter/Trace-and-Debug.html","topicHref":"vs-test-adapter/Trace-and-Debug.html"},{"name":"Supported Frameworks","href":"vs-test-adapter/Supported-Frameworks.html","topicHref":"vs-test-adapter/Supported-Frameworks.html"},{"name":"Adapter-Engine Compatibility","href":"vs-test-adapter/Adapter-Engine-Compatibility.html","topicHref":"vs-test-adapter/Adapter-Engine-Compatibility.html"},{"name":"Debugging the Adapter","href":"vs-test-adapter/Debugging.html","topicHref":"vs-test-adapter/Debugging.html"},{"name":"Debugger Source-Stepping","href":"vs-test-adapter/Adapter-Source-Stepping.html","topicHref":"vs-test-adapter/Adapter-Source-Stepping.html"},{"name":"Release Notes V4","href":"vs-test-adapter/AdapterV4-Release-Notes.html","topicHref":"vs-test-adapter/AdapterV4-Release-Notes.html"},{"name":"Release Notes V3","href":"vs-test-adapter/AdapterV3-Release-Notes.html","topicHref":"vs-test-adapter/AdapterV3-Release-Notes.html"},{"name":"Release Notes V2","href":"vs-test-adapter/AdapterV2-Release-Notes.html","topicHref":"vs-test-adapter/AdapterV2-Release-Notes.html"},{"name":"License","href":"vs-test-adapter/Adapter-License.html","topicHref":"vs-test-adapter/Adapter-License.html"}]},{"name":"NUnit Engine","href":"nunit-engine/Index.html","topicHref":"nunit-engine/Index.html","includedFrom":"~/articles/nunit-engine/toc.yml","items":[{"name":"Introduction","href":"nunit-engine/Index.html","topicHref":"nunit-engine/Index.html"},{"name":"Getting Started","href":"nunit-engine/Getting-Started.html","topicHref":"nunit-engine/Getting-Started.html"},{"name":"Test Engine API","href":"nunit-engine/Test-Engine-API.html","topicHref":"nunit-engine/Test-Engine-API.html"},{"name":"Engine Extensions","href":"nunit-engine/extensions/Index.html","topicHref":"nunit-engine/extensions/Index.html","includedFrom":"~/articles/nunit-engine/extensions/toc.yml","items":[{"name":"Introduction","href":"nunit-engine/extensions/Index.html","topicHref":"nunit-engine/extensions/Index.html"},{"name":"Available Engine Extensions","href":"nunit-engine/extensions/AvailableExtensions.html","topicHref":"nunit-engine/extensions/AvailableExtensions.html"},{"name":"Installing Engine Extensions","href":"nunit-engine/extensions/Installing-Extensions.html","topicHref":"nunit-engine/extensions/Installing-Extensions.html"},{"name":"Creating Engine Extensions","href":"nunit-engine/extensions/creating-extensions/Index.html","topicHref":"nunit-engine/extensions/creating-extensions/Index.html","includedFrom":"~/articles/nunit-engine/extensions/creating-extensions/toc.yml","items":[{"name":"Introduction","href":"nunit-engine/extensions/creating-extensions/Index.html","topicHref":"nunit-engine/extensions/creating-extensions/Index.html"},{"name":"Writing Engine Extensions","href":"nunit-engine/extensions/creating-extensions/Writing-Engine-Extensions.html","topicHref":"nunit-engine/extensions/creating-extensions/Writing-Engine-Extensions.html"},{"name":"Event Listener Extensions","href":"nunit-engine/extensions/creating-extensions/Event-Listeners.html","topicHref":"nunit-engine/extensions/creating-extensions/Event-Listeners.html"},{"name":"Framework Driver Extensions","href":"nunit-engine/extensions/creating-extensions/Framework-Drivers.html","topicHref":"nunit-engine/extensions/creating-extensions/Framework-Drivers.html"},{"name":"Project Loader Extensions","href":"nunit-engine/extensions/creating-extensions/Project-Loaders.html","topicHref":"nunit-engine/extensions/creating-extensions/Project-Loaders.html"},{"name":"Result Writer Extensions","href":"nunit-engine/extensions/creating-extensions/Result-Writers.html","topicHref":"nunit-engine/extensions/creating-extensions/Result-Writers.html"}]}]},{"name":"Release Notes","href":"nunit-engine/release-notes.html","topicHref":"nunit-engine/release-notes.html"}]},{"name":"NUnit Xamarin Runners","href":"xamarin-runners/index.html","topicHref":"xamarin-runners/index.html","includedFrom":"~/articles/xamarin-runners/toc.yml","items":[{"name":"Index & Options","href":"xamarin-runners/index.html","topicHref":"xamarin-runners/index.html"},{"name":"Getting Started in Visual Studio","href":"xamarin-runners/Getting-Started-in-Visual-Studio.html","topicHref":"xamarin-runners/Getting-Started-in-Visual-Studio.html"},{"name":"Getting Started in VS for Mac","href":"xamarin-runners/Getting-Started-in-Visual-Studio-for-Mac.html","topicHref":"xamarin-runners/Getting-Started-in-Visual-Studio-for-Mac.html"}]},{"name":"VS Test Generator","href":"vs-test-generator/Visual-Studio-Test-Generator.html","topicHref":"vs-test-generator/Visual-Studio-Test-Generator.html","includedFrom":"~/articles/vs-test-generator/toc.yml","items":[{"name":"Visual Studio Test Generator","href":"vs-test-generator/Visual-Studio-Test-Generator.html","topicHref":"vs-test-generator/Visual-Studio-Test-Generator.html"},{"name":"Installation","href":"vs-test-generator/TestGenerator-Installation.html","topicHref":"vs-test-generator/TestGenerator-Installation.html"},{"name":"Release Notes","href":"vs-test-generator/TestGenerator-Release-Notes.html","topicHref":"vs-test-generator/TestGenerator-Release-Notes.html"},{"name":"Release Notes VS2017/VS2019","href":"vs-test-generator/TestGenerator-Release-Notes-VS2017-VS2019.html","topicHref":"vs-test-generator/TestGenerator-Release-Notes-VS2017-VS2019.html"},{"name":"Release Notes VS2015","href":"vs-test-generator/TestGenerator-Release-Notes-VS2015.html","topicHref":"vs-test-generator/TestGenerator-Release-Notes-VS2015.html"}]},{"name":"NUnit Analyzers","href":"nunit-analyzers/NUnit-Analyzers.html","topicHref":"nunit-analyzers/NUnit-Analyzers.html","includedFrom":"~/articles/nunit-analyzers/toc.yml","items":[{"name":"NUnit Analyzers","href":"nunit-analyzers/NUnit-Analyzers.html","topicHref":"nunit-analyzers/NUnit-Analyzers.html","items":[{"name":"NUnit1001","href":"nunit-analyzers/NUnit1001.html","topicHref":"nunit-analyzers/NUnit1001.html"},{"name":"NUnit1002","href":"nunit-analyzers/NUnit1002.html","topicHref":"nunit-analyzers/NUnit1002.html"},{"name":"NUnit1003","href":"nunit-analyzers/NUnit1003.html","topicHref":"nunit-analyzers/NUnit1003.html"},{"name":"NUnit1004","href":"nunit-analyzers/NUnit1004.html","topicHref":"nunit-analyzers/NUnit1004.html"},{"name":"NUnit1005","href":"nunit-analyzers/NUnit1005.html","topicHref":"nunit-analyzers/NUnit1005.html"},{"name":"NUnit1006","href":"nunit-analyzers/NUnit1006.html","topicHref":"nunit-analyzers/NUnit1006.html"},{"name":"NUnit1007","href":"nunit-analyzers/NUnit1007.html","topicHref":"nunit-analyzers/NUnit1007.html"},{"name":"NUnit1008","href":"nunit-analyzers/NUnit1008.html","topicHref":"nunit-analyzers/NUnit1008.html"},{"name":"NUnit1009","href":"nunit-analyzers/NUnit1009.html","topicHref":"nunit-analyzers/NUnit1009.html"},{"name":"NUnit1010","href":"nunit-analyzers/NUnit1010.html","topicHref":"nunit-analyzers/NUnit1010.html"},{"name":"NUnit1011","href":"nunit-analyzers/NUnit1011.html","topicHref":"nunit-analyzers/NUnit1011.html"},{"name":"NUnit1012","href":"nunit-analyzers/NUnit1012.html","topicHref":"nunit-analyzers/NUnit1012.html"},{"name":"NUnit1013","href":"nunit-analyzers/NUnit1013.html","topicHref":"nunit-analyzers/NUnit1013.html"},{"name":"NUnit1014","href":"nunit-analyzers/NUnit1014.html","topicHref":"nunit-analyzers/NUnit1014.html"},{"name":"NUnit1015","href":"nunit-analyzers/NUnit1015.html","topicHref":"nunit-analyzers/NUnit1015.html"},{"name":"NUnit1016","href":"nunit-analyzers/NUnit1016.html","topicHref":"nunit-analyzers/NUnit1016.html"},{"name":"NUnit1017","href":"nunit-analyzers/NUnit1017.html","topicHref":"nunit-analyzers/NUnit1017.html"},{"name":"NUnit1018","href":"nunit-analyzers/NUnit1018.html","topicHref":"nunit-analyzers/NUnit1018.html"},{"name":"NUnit1019","href":"nunit-analyzers/NUnit1019.html","topicHref":"nunit-analyzers/NUnit1019.html"},{"name":"NUnit1020","href":"nunit-analyzers/NUnit1020.html","topicHref":"nunit-analyzers/NUnit1020.html"},{"name":"NUnit1021","href":"nunit-analyzers/NUnit1021.html","topicHref":"nunit-analyzers/NUnit1021.html"},{"name":"NUnit1022","href":"nunit-analyzers/NUnit1022.html","topicHref":"nunit-analyzers/NUnit1022.html"},{"name":"NUnit1023","href":"nunit-analyzers/NUnit1023.html","topicHref":"nunit-analyzers/NUnit1023.html"},{"name":"NUnit1024","href":"nunit-analyzers/NUnit1024.html","topicHref":"nunit-analyzers/NUnit1024.html"},{"name":"NUnit1025","href":"nunit-analyzers/NUnit1025.html","topicHref":"nunit-analyzers/NUnit1025.html"},{"name":"NUnit1026","href":"nunit-analyzers/NUnit1026.html","topicHref":"nunit-analyzers/NUnit1026.html"},{"name":"NUnit1027","href":"nunit-analyzers/NUnit1027.html","topicHref":"nunit-analyzers/NUnit1027.html"},{"name":"NUnit1028","href":"nunit-analyzers/NUnit1028.html","topicHref":"nunit-analyzers/NUnit1028.html"},{"name":"NUnit1029","href":"nunit-analyzers/NUnit1029.html","topicHref":"nunit-analyzers/NUnit1029.html"},{"name":"NUnit1030","href":"nunit-analyzers/NUnit1030.html","topicHref":"nunit-analyzers/NUnit1030.html"},{"name":"NUnit1031","href":"nunit-analyzers/NUnit1031.html","topicHref":"nunit-analyzers/NUnit1031.html"},{"name":"NUnit1032","href":"nunit-analyzers/NUnit1032.html","topicHref":"nunit-analyzers/NUnit1032.html"},{"name":"NUnit2001","href":"nunit-analyzers/NUnit2001.html","topicHref":"nunit-analyzers/NUnit2001.html"},{"name":"NUnit2002","href":"nunit-analyzers/NUnit2002.html","topicHref":"nunit-analyzers/NUnit2002.html"},{"name":"NUnit2003","href":"nunit-analyzers/NUnit2003.html","topicHref":"nunit-analyzers/NUnit2003.html"},{"name":"NUnit2004","href":"nunit-analyzers/NUnit2004.html","topicHref":"nunit-analyzers/NUnit2004.html"},{"name":"NUnit2005","href":"nunit-analyzers/NUnit2005.html","topicHref":"nunit-analyzers/NUnit2005.html"},{"name":"NUnit2006","href":"nunit-analyzers/NUnit2006.html","topicHref":"nunit-analyzers/NUnit2006.html"},{"name":"NUnit2007","href":"nunit-analyzers/NUnit2007.html","topicHref":"nunit-analyzers/NUnit2007.html"},{"name":"NUnit2008","href":"nunit-analyzers/NUnit2008.html","topicHref":"nunit-analyzers/NUnit2008.html"},{"name":"NUnit2009","href":"nunit-analyzers/NUnit2009.html","topicHref":"nunit-analyzers/NUnit2009.html"},{"name":"NUnit2010","href":"nunit-analyzers/NUnit2010.html","topicHref":"nunit-analyzers/NUnit2010.html"},{"name":"NUnit2011","href":"nunit-analyzers/NUnit2011.html","topicHref":"nunit-analyzers/NUnit2011.html"},{"name":"NUnit2012","href":"nunit-analyzers/NUnit2012.html","topicHref":"nunit-analyzers/NUnit2012.html"},{"name":"NUnit2013","href":"nunit-analyzers/NUnit2013.html","topicHref":"nunit-analyzers/NUnit2013.html"},{"name":"NUnit2014","href":"nunit-analyzers/NUnit2014.html","topicHref":"nunit-analyzers/NUnit2014.html"},{"name":"NUnit2015","href":"nunit-analyzers/NUnit2015.html","topicHref":"nunit-analyzers/NUnit2015.html"},{"name":"NUnit2016","href":"nunit-analyzers/NUnit2016.html","topicHref":"nunit-analyzers/NUnit2016.html"},{"name":"NUnit2017","href":"nunit-analyzers/NUnit2017.html","topicHref":"nunit-analyzers/NUnit2017.html"},{"name":"NUnit2018","href":"nunit-analyzers/NUnit2018.html","topicHref":"nunit-analyzers/NUnit2018.html"},{"name":"NUnit2019","href":"nunit-analyzers/NUnit2019.html","topicHref":"nunit-analyzers/NUnit2019.html"},{"name":"NUnit2020","href":"nunit-analyzers/NUnit2020.html","topicHref":"nunit-analyzers/NUnit2020.html"},{"name":"NUnit2021","href":"nunit-analyzers/NUnit2021.html","topicHref":"nunit-analyzers/NUnit2021.html"},{"name":"NUnit2022","href":"nunit-analyzers/NUnit2022.html","topicHref":"nunit-analyzers/NUnit2022.html"},{"name":"NUnit2023","href":"nunit-analyzers/NUnit2023.html","topicHref":"nunit-analyzers/NUnit2023.html"},{"name":"NUnit2024","href":"nunit-analyzers/NUnit2024.html","topicHref":"nunit-analyzers/NUnit2024.html"},{"name":"NUnit2025","href":"nunit-analyzers/NUnit2025.html","topicHref":"nunit-analyzers/NUnit2025.html"},{"name":"NUnit2026","href":"nunit-analyzers/NUnit2026.html","topicHref":"nunit-analyzers/NUnit2026.html"},{"name":"NUnit2027","href":"nunit-analyzers/NUnit2027.html","topicHref":"nunit-analyzers/NUnit2027.html"},{"name":"NUnit2028","href":"nunit-analyzers/NUnit2028.html","topicHref":"nunit-analyzers/NUnit2028.html"},{"name":"NUnit2029","href":"nunit-analyzers/NUnit2029.html","topicHref":"nunit-analyzers/NUnit2029.html"},{"name":"NUnit2030","href":"nunit-analyzers/NUnit2030.html","topicHref":"nunit-analyzers/NUnit2030.html"},{"name":"NUnit2031","href":"nunit-analyzers/NUnit2031.html","topicHref":"nunit-analyzers/NUnit2031.html"},{"name":"NUnit2032","href":"nunit-analyzers/NUnit2032.html","topicHref":"nunit-analyzers/NUnit2032.html"},{"name":"NUnit2033","href":"nunit-analyzers/NUnit2033.html","topicHref":"nunit-analyzers/NUnit2033.html"},{"name":"NUnit2034","href":"nunit-analyzers/NUnit2034.html","topicHref":"nunit-analyzers/NUnit2034.html"},{"name":"NUnit2035","href":"nunit-analyzers/NUnit2035.html","topicHref":"nunit-analyzers/NUnit2035.html"},{"name":"NUnit2036","href":"nunit-analyzers/NUnit2036.html","topicHref":"nunit-analyzers/NUnit2036.html"},{"name":"NUnit2037","href":"nunit-analyzers/NUnit2037.html","topicHref":"nunit-analyzers/NUnit2037.html"},{"name":"NUnit2038","href":"nunit-analyzers/NUnit2038.html","topicHref":"nunit-analyzers/NUnit2038.html"},{"name":"NUnit2039","href":"nunit-analyzers/NUnit2039.html","topicHref":"nunit-analyzers/NUnit2039.html"},{"name":"NUnit2040","href":"nunit-analyzers/NUnit2040.html","topicHref":"nunit-analyzers/NUnit2040.html"},{"name":"NUnit2041","href":"nunit-analyzers/NUnit2041.html","topicHref":"nunit-analyzers/NUnit2041.html"},{"name":"NUnit2042","href":"nunit-analyzers/NUnit2042.html","topicHref":"nunit-analyzers/NUnit2042.html"},{"name":"NUnit2043","href":"nunit-analyzers/NUnit2043.html","topicHref":"nunit-analyzers/NUnit2043.html"},{"name":"NUnit2044","href":"nunit-analyzers/NUnit2044.html","topicHref":"nunit-analyzers/NUnit2044.html"},{"name":"NUnit2045","href":"nunit-analyzers/NUnit2045.html","topicHref":"nunit-analyzers/NUnit2045.html"},{"name":"NUnit2046","href":"nunit-analyzers/NUnit2046.html","topicHref":"nunit-analyzers/NUnit2046.html"},{"name":"NUnit2047","href":"nunit-analyzers/NUnit2047.html","topicHref":"nunit-analyzers/NUnit2047.html"},{"name":"NUnit3001","href":"nunit-analyzers/NUnit3001.html","topicHref":"nunit-analyzers/NUnit3001.html"},{"name":"NUnit3002","href":"nunit-analyzers/NUnit3002.html","topicHref":"nunit-analyzers/NUnit3002.html"},{"name":"NUnit3003","href":"nunit-analyzers/NUnit3003.html","topicHref":"nunit-analyzers/NUnit3003.html"},{"name":"NUnit3004","href":"nunit-analyzers/NUnit3004.html","topicHref":"nunit-analyzers/NUnit3004.html"}]}]},{"name":"Related Project Links","items":[{"name":"TestCentric GUI","href":"https://github.com/TestCentric/testcentric-gui/wiki","topicHref":"https://github.com/TestCentric/testcentric-gui/wiki"},{"name":"NUnit Project Editor","href":"https://github.com/nunit-legacy/nunit-project-editor/wiki/Project-Editor","topicHref":"https://github.com/nunit-legacy/nunit-project-editor/wiki/Project-Editor"}]},{"name":"Developer Info","includedFrom":"~/articles/developer-info/toc.yml","items":[{"name":"The Teams","href":"developer-info/The-Teams.html","topicHref":"developer-info/The-Teams.html"},{"name":"Team Practices","href":"developer-info/Team-Practices.html","topicHref":"developer-info/Team-Practices.html"},{"name":"Specifications","href":"nunit/technical-notes/nunit-internals/specs/Specifications.html","topicHref":"nunit/technical-notes/nunit-internals/specs/Specifications.html","topicUid":"specifications"},{"name":"Notes Toward NUnit 4.0","href":"developer-info/Notes-Toward-NUnit-4.0.html","topicHref":"developer-info/Notes-Toward-NUnit-4.0.html"},{"name":"Best Practices for XML Documentation","href":"developer-info/Best-practices-for-XML-documentation.html","topicHref":"developer-info/Best-practices-for-XML-documentation.html"},{"name":"Coding Standards","href":"developer-info/Coding-Standards.html","topicHref":"developer-info/Coding-Standards.html"},{"name":"Contributions","href":"developer-info/Contributions.html","topicHref":"developer-info/Contributions.html"},{"name":"Issue Tracking","href":"developer-info/Issue-Tracking.html","topicHref":"developer-info/Issue-Tracking.html"},{"name":"Packaging Extensions","href":"developer-info/Packaging-Extensions.html","topicHref":"developer-info/Packaging-Extensions.html"},{"name":"Packaging the Console and Engine","href":"developer-info/Packaging-the-Console-and-Engine.html","topicHref":"developer-info/Packaging-the-Console-and-Engine.html"},{"name":"Packaging the Framework","href":"developer-info/Packaging-the-Framework.html","topicHref":"developer-info/Packaging-the-Framework.html"},{"name":"Packaging the Installer","href":"developer-info/Packaging-the-Installer.html","topicHref":"developer-info/Packaging-the-Installer.html"},{"name":"Packaging the V2 Adapter","href":"developer-info/Packaging-the-V2-Adapter.html","topicHref":"developer-info/Packaging-the-V2-Adapter.html"},{"name":"Packaging the V3/V4 Adapter","href":"developer-info/Packaging-the-V3-and-V4-Adapter.html","topicHref":"developer-info/Packaging-the-V3-and-V4-Adapter.html"}]},{"name":"Legacy (2.x) Docs","href":"legacy/index.html","topicHref":"legacy/index.html"}]} +{"items":[{"name":"NUnit","href":"nunit/intro.html","topicHref":"nunit/intro.html","includedFrom":"~/articles/nunit/toc.yml","items":[{"name":"Introduction","href":"nunit/intro.html","topicHref":"nunit/intro.html"},{"name":"NUnit 4 plans","href":"nunit/Towards-NUnit4.html","topicHref":"nunit/Towards-NUnit4.html"},{"name":"Migration Guidance","href":"nunit/release-notes/Nunit4.0-MigrationGuide.html","topicHref":"nunit/release-notes/Nunit4.0-MigrationGuide.html","topicUid":"migrationguidance"},{"name":"Release Notes","href":"nunit/release-notes/framework.html","topicHref":"nunit/release-notes/framework.html","includedFrom":"~/articles/nunit/release-notes/toc.yml","items":[{"name":"Framework","href":"nunit/release-notes/framework.html","topicHref":"nunit/release-notes/framework.html"},{"name":"Console and Engine","href":"nunit-engine/release-notes.html","topicHref":"nunit-engine/release-notes.html","topicUid":"consoleenginereleasenotes"},{"name":"Migration Guidance","href":"nunit/release-notes/Nunit4.0-MigrationGuide.html","topicHref":"nunit/release-notes/Nunit4.0-MigrationGuide.html","topicUid":"migrationguidance"},{"name":"Breaking Changes","href":"nunit/release-notes/breaking-changes.html","topicHref":"nunit/release-notes/breaking-changes.html","topicUid":"breakingchanges"},{"name":"Pre-3.5 Release notes","href":"nunit/release-notes/Pre-3.5-Release-Notes.html","topicHref":"nunit/release-notes/Pre-3.5-Release-Notes.html"}]},{"name":"License","href":"nunit/license.html","topicHref":"nunit/license.html"},{"name":"Getting Started","href":"nunit/getting-started/installation.html","topicHref":"nunit/getting-started/installation.html","includedFrom":"~/articles/nunit/getting-started/toc.yml","items":[{"name":"Installation","href":"nunit/getting-started/installation.html","topicHref":"nunit/getting-started/installation.html"},{"name":"Upgrading","href":"nunit/getting-started/upgrading.html","topicHref":"nunit/getting-started/upgrading.html"},{"name":"Samples","href":"nunit/getting-started/samples.html","topicHref":"nunit/getting-started/samples.html"},{"name":"Breaking Changes","href":"nunit/release-notes/breaking-changes.html","topicHref":"nunit/release-notes/breaking-changes.html","topicUid":"breakingchanges"},{"name":".NET Core and .NET Standard","href":"nunit/getting-started/dotnet-core-and-dotnet-standard.html","topicHref":"nunit/getting-started/dotnet-core-and-dotnet-standard.html"}]},{"name":"Writing Tests","href":"nunit/writing-tests/attributes.html","topicHref":"nunit/writing-tests/attributes.html","includedFrom":"~/articles/nunit/writing-tests/toc.yml","items":[{"name":"Attributes","href":"nunit/writing-tests/attributes.html","topicHref":"nunit/writing-tests/attributes.html"},{"name":"Attribute Descriptions","href":"nunit/writing-tests/attributes/apartment.html","topicHref":"nunit/writing-tests/attributes/apartment.html","includedFrom":"~/articles/nunit/writing-tests/attributes/toc.yml","items":[{"name":"[Apartment]","href":"nunit/writing-tests/attributes/apartment.html","topicHref":"nunit/writing-tests/attributes/apartment.html"},{"name":"[Author]","href":"nunit/writing-tests/attributes/author.html","topicHref":"nunit/writing-tests/attributes/author.html"},{"name":"[Category]","href":"nunit/writing-tests/attributes/category.html","topicHref":"nunit/writing-tests/attributes/category.html"},{"name":"[Combinatorial]","href":"nunit/writing-tests/attributes/combinatorial.html","topicHref":"nunit/writing-tests/attributes/combinatorial.html"},{"name":"[Culture]","href":"nunit/writing-tests/attributes/culture.html","topicHref":"nunit/writing-tests/attributes/culture.html"},{"name":"[Datapoint]","href":"nunit/writing-tests/attributes/datapoint.html","topicHref":"nunit/writing-tests/attributes/datapoint.html"},{"name":"[DatapointSource]","href":"nunit/writing-tests/attributes/datapointsource.html","topicHref":"nunit/writing-tests/attributes/datapointsource.html"},{"name":"[DefaultFloatingPointTolerance]","href":"nunit/writing-tests/attributes/defaultfloatingpointtolerance.html","topicHref":"nunit/writing-tests/attributes/defaultfloatingpointtolerance.html"},{"name":"[Description]","href":"nunit/writing-tests/attributes/description.html","topicHref":"nunit/writing-tests/attributes/description.html"},{"name":"[Explicit]","href":"nunit/writing-tests/attributes/explicit.html","topicHref":"nunit/writing-tests/attributes/explicit.html"},{"name":"[FixtureLifeCycle]","href":"nunit/writing-tests/attributes/fixturelifecycle.html","topicHref":"nunit/writing-tests/attributes/fixturelifecycle.html"},{"name":"[Ignore]","href":"nunit/writing-tests/attributes/ignore.html","topicHref":"nunit/writing-tests/attributes/ignore.html"},{"name":"[LevelOfParallelism]","href":"nunit/writing-tests/attributes/levelofparallelism.html","topicHref":"nunit/writing-tests/attributes/levelofparallelism.html"},{"name":"[MaxTime]","href":"nunit/writing-tests/attributes/maxtime.html","topicHref":"nunit/writing-tests/attributes/maxtime.html"},{"name":"[NonTestAssembly]","href":"nunit/writing-tests/attributes/nontestassembly.html","topicHref":"nunit/writing-tests/attributes/nontestassembly.html"},{"name":"[OneTimeSetUp]","href":"nunit/writing-tests/attributes/onetimesetup.html","topicHref":"nunit/writing-tests/attributes/onetimesetup.html"},{"name":"[OneTimeTearDown]","href":"nunit/writing-tests/attributes/onetimeteardown.html","topicHref":"nunit/writing-tests/attributes/onetimeteardown.html"},{"name":"[Order]","href":"nunit/writing-tests/attributes/order.html","topicHref":"nunit/writing-tests/attributes/order.html"},{"name":"[Pairwise]","href":"nunit/writing-tests/attributes/pairwise.html","topicHref":"nunit/writing-tests/attributes/pairwise.html"},{"name":"[Parallelizable]","href":"nunit/writing-tests/attributes/parallelizable.html","topicHref":"nunit/writing-tests/attributes/parallelizable.html"},{"name":"[NonParallelizable]","href":"nunit/writing-tests/attributes/nonparallelizable.html","topicHref":"nunit/writing-tests/attributes/nonparallelizable.html"},{"name":"[Platform]","href":"nunit/writing-tests/attributes/platform.html","topicHref":"nunit/writing-tests/attributes/platform.html"},{"name":"[Property]","href":"nunit/writing-tests/attributes/property.html","topicHref":"nunit/writing-tests/attributes/property.html"},{"name":"[Random]","href":"nunit/writing-tests/attributes/random.html","topicHref":"nunit/writing-tests/attributes/random.html"},{"name":"[Range]","href":"nunit/writing-tests/attributes/range.html","topicHref":"nunit/writing-tests/attributes/range.html"},{"name":"[Repeat]","href":"nunit/writing-tests/attributes/repeat.html","topicHref":"nunit/writing-tests/attributes/repeat.html"},{"name":"[RequiresThread]","href":"nunit/writing-tests/attributes/requiresthread.html","topicHref":"nunit/writing-tests/attributes/requiresthread.html"},{"name":"[Retry]","href":"nunit/writing-tests/attributes/retry.html","topicHref":"nunit/writing-tests/attributes/retry.html"},{"name":"[Sequential]","href":"nunit/writing-tests/attributes/sequential.html","topicHref":"nunit/writing-tests/attributes/sequential.html"},{"name":"[SetCulture]","href":"nunit/writing-tests/attributes/setculture.html","topicHref":"nunit/writing-tests/attributes/setculture.html"},{"name":"[SetUICulture]","href":"nunit/writing-tests/attributes/setuiculture.html","topicHref":"nunit/writing-tests/attributes/setuiculture.html"},{"name":"[Setup]","href":"nunit/writing-tests/attributes/setup.html","topicHref":"nunit/writing-tests/attributes/setup.html"},{"name":"[SetUpFixture]","href":"nunit/writing-tests/attributes/setupfixture.html","topicHref":"nunit/writing-tests/attributes/setupfixture.html"},{"name":"[SingleThreaded]","href":"nunit/writing-tests/attributes/singlethreaded.html","topicHref":"nunit/writing-tests/attributes/singlethreaded.html"},{"name":"[TearDown]","href":"nunit/writing-tests/attributes/teardown.html","topicHref":"nunit/writing-tests/attributes/teardown.html"},{"name":"[Test]","href":"nunit/writing-tests/attributes/test.html","topicHref":"nunit/writing-tests/attributes/test.html"},{"name":"[TestCase]","href":"nunit/writing-tests/attributes/testcase.html","topicHref":"nunit/writing-tests/attributes/testcase.html"},{"name":"[TestCaseSource]","href":"nunit/writing-tests/attributes/testcasesource.html","topicHref":"nunit/writing-tests/attributes/testcasesource.html"},{"name":"[TestFixture]","href":"nunit/writing-tests/attributes/testfixture.html","topicHref":"nunit/writing-tests/attributes/testfixture.html"},{"name":"[TestFixtureSetUp]","href":"nunit/writing-tests/attributes/testfixturesetup.html","topicHref":"nunit/writing-tests/attributes/testfixturesetup.html"},{"name":"[TestFixtureSource]","href":"nunit/writing-tests/attributes/testfixturesource.html","topicHref":"nunit/writing-tests/attributes/testfixturesource.html"},{"name":"[TestFixtureTearDown]","href":"nunit/writing-tests/attributes/testfixtureteardown.html","topicHref":"nunit/writing-tests/attributes/testfixtureteardown.html"},{"name":"[TestOf]","href":"nunit/writing-tests/attributes/testof.html","topicHref":"nunit/writing-tests/attributes/testof.html"},{"name":"[Theory]","href":"nunit/writing-tests/attributes/theory.html","topicHref":"nunit/writing-tests/attributes/theory.html"},{"name":"[Timeout]","href":"nunit/writing-tests/attributes/timeout.html","topicHref":"nunit/writing-tests/attributes/timeout.html"},{"name":"[Values]","href":"nunit/writing-tests/attributes/values.html","topicHref":"nunit/writing-tests/attributes/values.html"},{"name":"[ValueSource]","href":"nunit/writing-tests/attributes/valuesource.html","topicHref":"nunit/writing-tests/attributes/valuesource.html"}]},{"name":"Assertions","href":"nunit/writing-tests/assertions/assertions.html","topicHref":"nunit/writing-tests/assertions/assertions.html","includedFrom":"~/articles/nunit/writing-tests/assertions/toc.yml","items":[{"name":"Assertions","href":"nunit/writing-tests/assertions/assertions.html","topicHref":"nunit/writing-tests/assertions/assertions.html"},{"name":"Assertion Models","href":"nunit/writing-tests/assertions/assertion-models/classic.html","topicHref":"nunit/writing-tests/assertions/assertion-models/classic.html","includedFrom":"~/articles/nunit/writing-tests/assertions/assertion-models/toc.yml","items":[{"name":"Constraint Model (Assert.That)","href":"nunit/writing-tests/assertions/assertion-models/constraint.html","topicHref":"nunit/writing-tests/assertions/assertion-models/constraint.html"},{"name":"Special Asserts","href":"nunit/writing-tests/assertions/assertion-models/special.html","topicHref":"nunit/writing-tests/assertions/assertion-models/special.html"},{"name":"Classic Model","href":"nunit/writing-tests/assertions/assertion-models/classic.html","topicHref":"nunit/writing-tests/assertions/assertion-models/classic.html"}]},{"name":"Multiple Asserts","href":"nunit/writing-tests/assertions/multiple-asserts.html","topicHref":"nunit/writing-tests/assertions/multiple-asserts.html"},{"name":"Special Assertions","includedFrom":"~/articles/nunit/writing-tests/assertions/special-assertions/toc.yml","items":[{"name":"Assert.Pass","href":"nunit/writing-tests/assertions/special-assertions/Assert.Pass.html","topicHref":"nunit/writing-tests/assertions/special-assertions/Assert.Pass.html"},{"name":"Assert.Fail","href":"nunit/writing-tests/assertions/special-assertions/Assert.Fail.html","topicHref":"nunit/writing-tests/assertions/special-assertions/Assert.Fail.html"},{"name":"Assert.Ignore","href":"nunit/writing-tests/assertions/special-assertions/Assert.Ignore.html","topicHref":"nunit/writing-tests/assertions/special-assertions/Assert.Ignore.html"},{"name":"Assert.Inconclusive","href":"nunit/writing-tests/assertions/special-assertions/Assert.Inconclusive.html","topicHref":"nunit/writing-tests/assertions/special-assertions/Assert.Inconclusive.html"}]},{"name":"Classic Assertions","includedFrom":"~/articles/nunit/writing-tests/assertions/classic-assertions/toc.yml","items":[{"name":"ClassicAssert.True","href":"nunit/writing-tests/assertions/classic-assertions/Assert.True.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.True.html"},{"name":"ClassicAssert.False","href":"nunit/writing-tests/assertions/classic-assertions/Assert.False.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.False.html"},{"name":"ClassicAssert.Null","href":"nunit/writing-tests/assertions/classic-assertions/Assert.Null.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.Null.html"},{"name":"ClassicAssert.NotNull","href":"nunit/writing-tests/assertions/classic-assertions/Assert.NotNull.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.NotNull.html"},{"name":"ClassicAssert.Zero","href":"nunit/writing-tests/assertions/classic-assertions/Assert.Zero.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.Zero.html"},{"name":"ClassicAssert.NotZero","href":"nunit/writing-tests/assertions/classic-assertions/Assert.NotZero.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.NotZero.html"},{"name":"ClassicAssert.IsNaN","href":"nunit/writing-tests/assertions/classic-assertions/Assert.IsNaN.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.IsNaN.html"},{"name":"ClassicAssert.IsEmpty","href":"nunit/writing-tests/assertions/classic-assertions/Assert.IsEmpty.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.IsEmpty.html"},{"name":"ClassicAssert.IsNotEmpty","href":"nunit/writing-tests/assertions/classic-assertions/Assert.IsNotEmpty.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.IsNotEmpty.html"},{"name":"ClassicAssert.AreEqual","href":"nunit/writing-tests/assertions/classic-assertions/Assert.AreEqual.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.AreEqual.html"},{"name":"ClassicAssert.AreNotEqual","href":"nunit/writing-tests/assertions/classic-assertions/Assert.AreNotEqual.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.AreNotEqual.html"},{"name":"ClassicAssert.AreSame","href":"nunit/writing-tests/assertions/classic-assertions/Assert.AreSame.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.AreSame.html"},{"name":"ClassicAssert.AreNotSame","href":"nunit/writing-tests/assertions/classic-assertions/Assert.AreNotSame.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.AreNotSame.html"},{"name":"ClassicAssert.Contains","href":"nunit/writing-tests/assertions/classic-assertions/Assert.Contains.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.Contains.html"},{"name":"ClassicAssert.Greater","href":"nunit/writing-tests/assertions/classic-assertions/Assert.Greater.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.Greater.html"},{"name":"ClassicAssert.GreaterOrEqual","href":"nunit/writing-tests/assertions/classic-assertions/Assert.GreaterOrEqual.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.GreaterOrEqual.html"},{"name":"ClassicAssert.Less","href":"nunit/writing-tests/assertions/classic-assertions/Assert.Less.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.Less.html"},{"name":"ClassicAssert.LessOrEqual","href":"nunit/writing-tests/assertions/classic-assertions/Assert.LessOrEqual.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.LessOrEqual.html"},{"name":"ClassicAssert.Positive","href":"nunit/writing-tests/assertions/classic-assertions/Assert.Positive.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.Positive.html"},{"name":"ClassicAssert.Negative","href":"nunit/writing-tests/assertions/classic-assertions/Assert.Negative.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.Negative.html"},{"name":"ClassicAssert.IsInstanceOf","href":"nunit/writing-tests/assertions/classic-assertions/Assert.IsInstanceOf.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.IsInstanceOf.html"},{"name":"ClassicAssert.IsNotInstanceOf","href":"nunit/writing-tests/assertions/classic-assertions/Assert.IsNotInstanceOf.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.IsNotInstanceOf.html"},{"name":"ClassicAssert.IsAssignableFrom","href":"nunit/writing-tests/assertions/classic-assertions/Assert.IsAssignableFrom.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.IsAssignableFrom.html"},{"name":"ClassicAssert.IsNotAssignableFrom","href":"nunit/writing-tests/assertions/classic-assertions/Assert.IsNotAssignableFrom.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.IsNotAssignableFrom.html"},{"name":"Assert.Throws","href":"nunit/writing-tests/assertions/classic-assertions/Assert.Throws.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.Throws.html"},{"name":"Assert.ThrowsAsync","href":"nunit/writing-tests/assertions/classic-assertions/Assert.ThrowsAsync.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.ThrowsAsync.html"},{"name":"Assert.DoesNotThrow","href":"nunit/writing-tests/assertions/classic-assertions/Assert.DoesNotThrow.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.DoesNotThrow.html"},{"name":"Assert.DoesNotThrowAsync","href":"nunit/writing-tests/assertions/classic-assertions/Assert.DoesNotThrowAsync.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.DoesNotThrowAsync.html"},{"name":"Assert.Catch","href":"nunit/writing-tests/assertions/classic-assertions/Assert.Catch.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.Catch.html"},{"name":"Assert.CatchAsync","href":"nunit/writing-tests/assertions/classic-assertions/Assert.CatchAsync.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Assert.CatchAsync.html"},{"name":"String Assert","href":"nunit/writing-tests/assertions/classic-assertions/String-Assert.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/String-Assert.html"},{"name":"Collection Assert","href":"nunit/writing-tests/assertions/classic-assertions/Collection-Assert.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Collection-Assert.html"},{"name":"File Assert","href":"nunit/writing-tests/assertions/classic-assertions/File-Assert.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/File-Assert.html"},{"name":"Directory Assert","href":"nunit/writing-tests/assertions/classic-assertions/Directory-Assert.html","topicHref":"nunit/writing-tests/assertions/classic-assertions/Directory-Assert.html"}]}]},{"name":"Assumptions","href":"nunit/writing-tests/Assumptions.html","topicHref":"nunit/writing-tests/Assumptions.html"},{"name":"Warnings","href":"nunit/writing-tests/Warnings.html","topicHref":"nunit/writing-tests/Warnings.html"},{"name":"Constraints","href":"nunit/writing-tests/constraints/Constraints.html","topicHref":"nunit/writing-tests/constraints/Constraints.html","includedFrom":"~/articles/nunit/writing-tests/constraints/toc.yml","items":[{"name":"Constraints","href":"nunit/writing-tests/constraints/Constraints.html","topicHref":"nunit/writing-tests/constraints/Constraints.html"},{"name":"AllItemsConstraint","href":"nunit/writing-tests/constraints/AllItemsConstraint.html","topicHref":"nunit/writing-tests/constraints/AllItemsConstraint.html"},{"name":"AndConstraint","href":"nunit/writing-tests/constraints/AndConstraint.html","topicHref":"nunit/writing-tests/constraints/AndConstraint.html"},{"name":"AnyOfConstraint","href":"nunit/writing-tests/constraints/AnyOfConstraint.html","topicHref":"nunit/writing-tests/constraints/AnyOfConstraint.html"},{"name":"AssignableFromConstraint","href":"nunit/writing-tests/constraints/AssignableFromConstraint.html","topicHref":"nunit/writing-tests/constraints/AssignableFromConstraint.html"},{"name":"AssignableToConstraint","href":"nunit/writing-tests/constraints/AssignableToConstraint.html","topicHref":"nunit/writing-tests/constraints/AssignableToConstraint.html"},{"name":"AttributeConstraint","href":"nunit/writing-tests/constraints/AttributeConstraint.html","topicHref":"nunit/writing-tests/constraints/AttributeConstraint.html"},{"name":"AttributeExistsConstraint","href":"nunit/writing-tests/constraints/AttributeExistsConstraint.html","topicHref":"nunit/writing-tests/constraints/AttributeExistsConstraint.html"},{"name":"BinarySerializableConstraint","href":"nunit/writing-tests/constraints/BinarySerializableConstraint.html","topicHref":"nunit/writing-tests/constraints/BinarySerializableConstraint.html"},{"name":"CollectionContainsConstraint","href":"nunit/writing-tests/constraints/CollectionContainsConstraint.html","topicHref":"nunit/writing-tests/constraints/CollectionContainsConstraint.html"},{"name":"CollectionEquivalentConstraint","href":"nunit/writing-tests/constraints/CollectionEquivalentConstraint.html","topicHref":"nunit/writing-tests/constraints/CollectionEquivalentConstraint.html"},{"name":"CollectionOrderedConstraint","href":"nunit/writing-tests/constraints/CollectionOrderedConstraint.html","topicHref":"nunit/writing-tests/constraints/CollectionOrderedConstraint.html"},{"name":"CollectionSubsetConstraint","href":"nunit/writing-tests/constraints/CollectionSubsetConstraint.html","topicHref":"nunit/writing-tests/constraints/CollectionSubsetConstraint.html"},{"name":"CollectionSupersetConstraint","href":"nunit/writing-tests/constraints/CollectionSupersetConstraint.html","topicHref":"nunit/writing-tests/constraints/CollectionSupersetConstraint.html"},{"name":"DelayedConstraint","href":"nunit/writing-tests/constraints/DelayedConstraint.html","topicHref":"nunit/writing-tests/constraints/DelayedConstraint.html"},{"name":"DictionaryContainsKeyConstraint","href":"nunit/writing-tests/constraints/DictionaryContainsKeyConstraint.html","topicHref":"nunit/writing-tests/constraints/DictionaryContainsKeyConstraint.html"},{"name":"DictionaryContainsKeyValuePairConstraint","href":"nunit/writing-tests/constraints/DictionaryContainsKeyValuePairConstraint.html","topicHref":"nunit/writing-tests/constraints/DictionaryContainsKeyValuePairConstraint.html"},{"name":"DictionaryContainsValueConstraint","href":"nunit/writing-tests/constraints/DictionaryContainsValueConstraint.html","topicHref":"nunit/writing-tests/constraints/DictionaryContainsValueConstraint.html"},{"name":"EmptyCollectionConstraint","href":"nunit/writing-tests/constraints/EmptyCollectionConstraint.html","topicHref":"nunit/writing-tests/constraints/EmptyCollectionConstraint.html"},{"name":"EmptyConstraint","href":"nunit/writing-tests/constraints/EmptyConstraint.html","topicHref":"nunit/writing-tests/constraints/EmptyConstraint.html"},{"name":"EmptyDirectoryConstraint","href":"nunit/writing-tests/constraints/EmptyDirectoryConstraint.html","topicHref":"nunit/writing-tests/constraints/EmptyDirectoryConstraint.html"},{"name":"EmptyStringConstraint","href":"nunit/writing-tests/constraints/EmptyStringConstraint.html","topicHref":"nunit/writing-tests/constraints/EmptyStringConstraint.html"},{"name":"EndsWithConstraint","href":"nunit/writing-tests/constraints/EndsWithConstraint.html","topicHref":"nunit/writing-tests/constraints/EndsWithConstraint.html"},{"name":"EqualConstraint","href":"nunit/writing-tests/constraints/EqualConstraint.html","topicHref":"nunit/writing-tests/constraints/EqualConstraint.html"},{"name":"ExactCountConstraint","href":"nunit/writing-tests/constraints/ExactCountConstraint.html","topicHref":"nunit/writing-tests/constraints/ExactCountConstraint.html"},{"name":"ExactTypeConstraint","href":"nunit/writing-tests/constraints/ExactTypeConstraint.html","topicHref":"nunit/writing-tests/constraints/ExactTypeConstraint.html"},{"name":"FalseConstraint","href":"nunit/writing-tests/constraints/FalseConstraint.html","topicHref":"nunit/writing-tests/constraints/FalseConstraint.html"},{"name":"FileOrDirectoryExistsConstraint","href":"nunit/writing-tests/constraints/FileOrDirectoryExistsConstraint.html","topicHref":"nunit/writing-tests/constraints/FileOrDirectoryExistsConstraint.html"},{"name":"GreaterThanConstraint","href":"nunit/writing-tests/constraints/GreaterThanConstraint.html","topicHref":"nunit/writing-tests/constraints/GreaterThanConstraint.html"},{"name":"GreaterThanOrEqualConstraint","href":"nunit/writing-tests/constraints/GreaterThanOrEqualConstraint.html","topicHref":"nunit/writing-tests/constraints/GreaterThanOrEqualConstraint.html"},{"name":"InstanceOfTypeConstraint","href":"nunit/writing-tests/constraints/InstanceOfTypeConstraint.html","topicHref":"nunit/writing-tests/constraints/InstanceOfTypeConstraint.html"},{"name":"LessThanConstraint","href":"nunit/writing-tests/constraints/LessThanConstraint.html","topicHref":"nunit/writing-tests/constraints/LessThanConstraint.html"},{"name":"LessThanOrEqualConstraint","href":"nunit/writing-tests/constraints/LessThanOrEqualConstraint.html","topicHref":"nunit/writing-tests/constraints/LessThanOrEqualConstraint.html"},{"name":"NaNConstraint","href":"nunit/writing-tests/constraints/NaNConstraint.html","topicHref":"nunit/writing-tests/constraints/NaNConstraint.html"},{"name":"NoItemConstraint","href":"nunit/writing-tests/constraints/NoItemConstraint.html","topicHref":"nunit/writing-tests/constraints/NoItemConstraint.html"},{"name":"NotConstraint","href":"nunit/writing-tests/constraints/NotConstraint.html","topicHref":"nunit/writing-tests/constraints/NotConstraint.html"},{"name":"NullConstraint","href":"nunit/writing-tests/constraints/NullConstraint.html","topicHref":"nunit/writing-tests/constraints/NullConstraint.html"},{"name":"OrConstraint","href":"nunit/writing-tests/constraints/OrConstraint.html","topicHref":"nunit/writing-tests/constraints/OrConstraint.html"},{"name":"PropertyConstraint","href":"nunit/writing-tests/constraints/PropertyConstraint.html","topicHref":"nunit/writing-tests/constraints/PropertyConstraint.html"},{"name":"PropertyExistsConstraint","href":"nunit/writing-tests/constraints/PropertyExistsConstraint.html","topicHref":"nunit/writing-tests/constraints/PropertyExistsConstraint.html"},{"name":"RangeConstraint","href":"nunit/writing-tests/constraints/RangeConstraint.html","topicHref":"nunit/writing-tests/constraints/RangeConstraint.html"},{"name":"RegexConstraint","href":"nunit/writing-tests/constraints/RegexConstraint.html","topicHref":"nunit/writing-tests/constraints/RegexConstraint.html"},{"name":"ReusableConstraint","href":"nunit/writing-tests/constraints/ReusableConstraint.html","topicHref":"nunit/writing-tests/constraints/ReusableConstraint.html"},{"name":"SameAsConstraint","href":"nunit/writing-tests/constraints/SameAsConstraint.html","topicHref":"nunit/writing-tests/constraints/SameAsConstraint.html"},{"name":"SamePathConstraint","href":"nunit/writing-tests/constraints/SamePathConstraint.html","topicHref":"nunit/writing-tests/constraints/SamePathConstraint.html"},{"name":"SamePathOrUnderConstraint","href":"nunit/writing-tests/constraints/SamePathOrUnderConstraint.html","topicHref":"nunit/writing-tests/constraints/SamePathOrUnderConstraint.html"},{"name":"SomeItemsConstraint","href":"nunit/writing-tests/constraints/SomeItemsConstraint.html","topicHref":"nunit/writing-tests/constraints/SomeItemsConstraint.html"},{"name":"StartsWithConstraint","href":"nunit/writing-tests/constraints/StartsWithConstraint.html","topicHref":"nunit/writing-tests/constraints/StartsWithConstraint.html"},{"name":"SubPathConstraint","href":"nunit/writing-tests/constraints/SubPathConstraint.html","topicHref":"nunit/writing-tests/constraints/SubPathConstraint.html"},{"name":"SubstringConstraint","href":"nunit/writing-tests/constraints/SubstringConstraint.html","topicHref":"nunit/writing-tests/constraints/SubstringConstraint.html"},{"name":"ThrowsConstraint","href":"nunit/writing-tests/constraints/ThrowsConstraint.html","topicHref":"nunit/writing-tests/constraints/ThrowsConstraint.html"},{"name":"ThrowsNothingConstraint","href":"nunit/writing-tests/constraints/ThrowsNothingConstraint.html","topicHref":"nunit/writing-tests/constraints/ThrowsNothingConstraint.html"},{"name":"TrueConstraint","href":"nunit/writing-tests/constraints/TrueConstraint.html","topicHref":"nunit/writing-tests/constraints/TrueConstraint.html"},{"name":"UniqueItemsConstraint","href":"nunit/writing-tests/constraints/UniqueItemsConstraint.html","topicHref":"nunit/writing-tests/constraints/UniqueItemsConstraint.html"},{"name":"WhiteSpaceConstraint","href":"nunit/writing-tests/constraints/WhiteSpaceConstraint.html","topicHref":"nunit/writing-tests/constraints/WhiteSpaceConstraint.html"},{"name":"XmlSerializableConstraint","href":"nunit/writing-tests/constraints/XmlSerializableConstraint.html","topicHref":"nunit/writing-tests/constraints/XmlSerializableConstraint.html"}]},{"name":"[SetUp] and [TearDown]","href":"nunit/writing-tests/setup-teardown/index.html","topicHref":"nunit/writing-tests/setup-teardown/index.html","includedFrom":"~/articles/nunit/writing-tests/setup-teardown/toc.yml","items":[{"name":"Index","href":"nunit/writing-tests/setup-teardown/index.html","topicHref":"nunit/writing-tests/setup-teardown/index.html"},{"name":"Changes 2.6.x --> 3.x","href":"nunit/writing-tests/setup-teardown/SetUp-and-TearDown-Changes.html","topicHref":"nunit/writing-tests/setup-teardown/SetUp-and-TearDown-Changes.html"}]},{"name":"TestCaseData","href":"nunit/writing-tests/TestCaseData.html","topicHref":"nunit/writing-tests/TestCaseData.html"},{"name":"TestFixtureData","href":"nunit/writing-tests/TestFixtureData.html","topicHref":"nunit/writing-tests/TestFixtureData.html"},{"name":"TestContext","href":"nunit/writing-tests/TestContext.html","topicHref":"nunit/writing-tests/TestContext.html"},{"name":"AssertionHelper","href":"nunit/writing-tests/AssertionHelper.html","topicHref":"nunit/writing-tests/AssertionHelper.html"},{"name":"ListMapper","href":"nunit/writing-tests/ListMapper.html","topicHref":"nunit/writing-tests/ListMapper.html"},{"name":"Randomizer Methods","href":"nunit/writing-tests/Randomizer-Methods.html","topicHref":"nunit/writing-tests/Randomizer-Methods.html"}]},{"name":"Running Tests","href":"nunit/running-tests/Index.html","topicHref":"nunit/running-tests/Index.html","includedFrom":"~/articles/nunit/running-tests/toc.yml","items":[{"name":"Console Runner","href":"nunit/running-tests/Console-Runner.html","topicHref":"nunit/running-tests/Console-Runner.html"},{"name":"Console Command Line","href":"nunit/running-tests/Console-Command-Line.html","topicHref":"nunit/running-tests/Console-Command-Line.html"},{"name":"NUnit Test Projects","href":"nunit/running-tests/NUnit-Test-Projects.html","topicHref":"nunit/running-tests/NUnit-Test-Projects.html"},{"name":"NUnitLite Runner","href":"nunit/running-tests/NUnitLite-Runner.html","topicHref":"nunit/running-tests/NUnitLite-Runner.html"},{"name":"NUnitLite Options","href":"nunit/running-tests/NUnitLite-Options.html","topicHref":"nunit/running-tests/NUnitLite-Options.html"},{"name":"Template Based Test Naming","href":"nunit/running-tests/Template-Based-Test-Naming.html","topicHref":"nunit/running-tests/Template-Based-Test-Naming.html"},{"name":"Test Selection Language","href":"nunit/running-tests/Test-Selection-Language.html","topicHref":"nunit/running-tests/Test-Selection-Language.html"}]},{"name":"Extending NUnit","href":"nunit/extending-nunit/Index.html","topicHref":"nunit/extending-nunit/Index.html","includedFrom":"~/articles/nunit/extending-nunit/toc.yml","items":[{"name":"Engine Extensibility","xref":"engineextensionsindex"},{"name":"Framework Extensibility","href":"nunit/extending-nunit/Framework-Extensibility.html","topicHref":"nunit/extending-nunit/Framework-Extensibility.html","items":[{"name":"Action Attributes","href":"nunit/extending-nunit/Action-Attributes.html","topicHref":"nunit/extending-nunit/Action-Attributes.html"},{"name":"Custom Attributes","href":"nunit/extending-nunit/Custom-Attributes.html","topicHref":"nunit/extending-nunit/Custom-Attributes.html","items":[{"name":"IApplyToContext Interface","href":"nunit/extending-nunit/IApplyToContext-Interface.html","topicHref":"nunit/extending-nunit/IApplyToContext-Interface.html"},{"name":"IApplyToTest Interface","href":"nunit/extending-nunit/IApplyToTest-Interface.html","topicHref":"nunit/extending-nunit/IApplyToTest-Interface.html"},{"name":"ICommandWrapper Interface","href":"nunit/extending-nunit/ICommandWrapper-Interface.html","topicHref":"nunit/extending-nunit/ICommandWrapper-Interface.html"},{"name":"IFixtureBuilder Interface","href":"nunit/extending-nunit/IFixtureBuilder-Interface.html","topicHref":"nunit/extending-nunit/IFixtureBuilder-Interface.html"},{"name":"IImplyFixture Interface","href":"nunit/extending-nunit/IImplyFixture-Interface.html","topicHref":"nunit/extending-nunit/IImplyFixture-Interface.html"},{"name":"IParameterDataSource Interface","href":"nunit/extending-nunit/IParameterDataSource-Interface.html","topicHref":"nunit/extending-nunit/IParameterDataSource-Interface.html"},{"name":"ISimpleTestBuilder Interface","href":"nunit/extending-nunit/ISimpleTestBuilder-Interface.html","topicHref":"nunit/extending-nunit/ISimpleTestBuilder-Interface.html"},{"name":"ITestBuilder Interface","href":"nunit/extending-nunit/ITestBuilder-Interface.html","topicHref":"nunit/extending-nunit/ITestBuilder-Interface.html"}]},{"name":"Custom Constraints","href":"nunit/extending-nunit/Custom-Constraints.html","topicHref":"nunit/extending-nunit/Custom-Constraints.html"}]}]},{"name":"Technical Notes","href":"nunit/technical-notes/usage/Usage-Notes.html","topicHref":"nunit/technical-notes/usage/Usage-Notes.html","includedFrom":"~/articles/nunit/technical-notes/toc.yml","items":[{"name":"Usage Notes","href":"nunit/technical-notes/usage/Usage-Notes.html","topicHref":"nunit/technical-notes/usage/Usage-Notes.html","includedFrom":"~/articles/nunit/technical-notes/usage/toc.yml","items":[{"name":"Usage Notes","href":"nunit/technical-notes/usage/Usage-Notes.html","topicHref":"nunit/technical-notes/usage/Usage-Notes.html"},{"name":"Addin Replacement in the Framework","href":"nunit/technical-notes/usage/Addin-Replacement-in-the-Framework.html","topicHref":"nunit/technical-notes/usage/Addin-Replacement-in-the-Framework.html"},{"name":"Assembly Isolation","href":"nunit/technical-notes/usage/Assembly-Isolation.html","topicHref":"nunit/technical-notes/usage/Assembly-Isolation.html"},{"name":"Configuration Files","href":"nunit/technical-notes/usage/Configuration-Files.html","topicHref":"nunit/technical-notes/usage/Configuration-Files.html"},{"name":"Counting Tests","href":"nunit/technical-notes/usage/Counting-Tests.html","topicHref":"nunit/technical-notes/usage/Counting-Tests.html"},{"name":"Engine Parallel Test Execution","href":"nunit/technical-notes/usage/Engine-Parallel-Test-Execution.html","topicHref":"nunit/technical-notes/usage/Engine-Parallel-Test-Execution.html"},{"name":"Framework Parallel Test Execution","href":"nunit/technical-notes/usage/Framework-Parallel-Test-Execution.html","topicHref":"nunit/technical-notes/usage/Framework-Parallel-Test-Execution.html"},{"name":"NUnit Project XML Format","href":"nunit/technical-notes/usage/NUnit-Project-XML-Format.html","topicHref":"nunit/technical-notes/usage/NUnit-Project-XML-Format.html"},{"name":"Parameterized Tests","href":"nunit/technical-notes/usage/Parameterized-Tests.html","topicHref":"nunit/technical-notes/usage/Parameterized-Tests.html"},{"name":"Platform Selection","href":"nunit/technical-notes/usage/Platform-Selection.html","topicHref":"nunit/technical-notes/usage/Platform-Selection.html"},{"name":"Runtime Selection","href":"nunit/technical-notes/usage/Runtime-Selection.html","topicHref":"nunit/technical-notes/usage/Runtime-Selection.html"},{"name":"SetUp and TearDown","href":"nunit/technical-notes/usage/SetUp-and-TearDown.html","topicHref":"nunit/technical-notes/usage/SetUp-and-TearDown.html"},{"name":"Test Filters","href":"nunit/technical-notes/usage/Test-Filters.html","topicHref":"nunit/technical-notes/usage/Test-Filters.html"},{"name":"Test Result XML Format","href":"nunit/technical-notes/usage/Test-Result-XML-Format.html","topicHref":"nunit/technical-notes/usage/Test-Result-XML-Format.html"},{"name":"Visual Studio Support","href":"nunit/technical-notes/usage/Visual-Studio-Support.html","topicHref":"nunit/technical-notes/usage/Visual-Studio-Support.html"},{"name":"XML Formats","href":"nunit/technical-notes/usage/XML-Formats.html","topicHref":"nunit/technical-notes/usage/XML-Formats.html"}]},{"name":"NUnit Internals","href":"nunit/technical-notes/nunit-internals/NUnit-Internals.html","topicHref":"nunit/technical-notes/nunit-internals/NUnit-Internals.html","includedFrom":"~/articles/nunit/technical-notes/nunit-internals/toc.yml","items":[{"name":"NUnit Internals","href":"nunit/technical-notes/nunit-internals/NUnit-Internals.html","topicHref":"nunit/technical-notes/nunit-internals/NUnit-Internals.html"},{"name":"Architectural Overview","href":"nunit/technical-notes/nunit-internals/Architectural-Overview.html","topicHref":"nunit/technical-notes/nunit-internals/Architectural-Overview.html"},{"name":"NUnit APIs","href":"nunit/technical-notes/nunit-internals/NUnit-APIs.html","topicHref":"nunit/technical-notes/nunit-internals/NUnit-APIs.html","items":[{"name":"Test Engine API","xref":"testengineapi"},{"name":"Engine Driver API","xref":"frameworkdrivers"},{"name":"Framework API","href":"nunit/technical-notes/nunit-internals/Framework-Api.html","topicHref":"nunit/technical-notes/nunit-internals/Framework-Api.html"}]},{"name":"Framework Design","href":"nunit/technical-notes/nunit-internals/Framework-Design.html","topicHref":"nunit/technical-notes/nunit-internals/Framework-Design.html"},{"name":"Active Attributes","href":"nunit/technical-notes/nunit-internals/Active-Attributes.html","topicHref":"nunit/technical-notes/nunit-internals/Active-Attributes.html"},{"name":"Attribute Hierarchy","href":"nunit/technical-notes/nunit-internals/Attribute-Hierarchy.html","topicHref":"nunit/technical-notes/nunit-internals/Attribute-Hierarchy.html"},{"name":"Test Discovery And Execution","href":"nunit/technical-notes/nunit-internals/Test-Discovery-And-Execution.html","topicHref":"nunit/technical-notes/nunit-internals/Test-Discovery-And-Execution.html"},{"name":"NUnit 3.0 Architecture (2009)","href":"nunit/technical-notes/nunit-internals/NUnit-3.0-Architecture-(2009).html","topicHref":"nunit/technical-notes/nunit-internals/NUnit-3.0-Architecture-(2009).html"},{"name":"Specifications","href":"nunit/technical-notes/nunit-internals/specs/Specifications.html","topicHref":"nunit/technical-notes/nunit-internals/specs/Specifications.html","includedFrom":"~/articles/nunit/technical-notes/nunit-internals/specs/toc.yml","items":[{"name":"Specifications","href":"nunit/technical-notes/nunit-internals/specs/Specifications.html","topicHref":"nunit/technical-notes/nunit-internals/specs/Specifications.html"},{"name":"Dynamic Test Cases Spec","href":"nunit/technical-notes/nunit-internals/specs/Dynamic-Test-Cases-Spec.html","topicHref":"nunit/technical-notes/nunit-internals/specs/Dynamic-Test-Cases-Spec.html"},{"name":"Engine Addins Spec","href":"nunit/technical-notes/nunit-internals/specs/Engine-Addins-Spec.html","topicHref":"nunit/technical-notes/nunit-internals/specs/Engine-Addins-Spec.html"},{"name":"Extended Constraint Syntax Spec","href":"nunit/technical-notes/nunit-internals/specs/Extended-Constraint-Syntax-Spec.html","topicHref":"nunit/technical-notes/nunit-internals/specs/Extended-Constraint-Syntax-Spec.html"},{"name":"Include and Exclude Attributes (Alternatives)","href":"nunit/technical-notes/nunit-internals/specs/Include%20and%20Exclude%20Attributes%20(Alternatives).html","topicHref":"nunit/technical-notes/nunit-internals/specs/Include%20and%20Exclude%20Attributes%20(Alternatives).html"},{"name":"Internal Trace Spec","href":"nunit/technical-notes/nunit-internals/specs/Internal-Trace-Spec.html","topicHref":"nunit/technical-notes/nunit-internals/specs/Internal-Trace-Spec.html"},{"name":"Parameterized Test Fixtures Spec","href":"nunit/technical-notes/nunit-internals/specs/Parameterized-Test-Fixtures-Spec.html","topicHref":"nunit/technical-notes/nunit-internals/specs/Parameterized-Test-Fixtures-Spec.html"},{"name":"Test Dependency Attribute Spec","href":"nunit/technical-notes/nunit-internals/specs/Test-Dependency-Attribute-Spec.html","topicHref":"nunit/technical-notes/nunit-internals/specs/Test-Dependency-Attribute-Spec.html"}]}]}]}]},{"name":"VS Test Adapter","href":"vs-test-adapter/Index.html","topicHref":"vs-test-adapter/Index.html","includedFrom":"~/articles/vs-test-adapter/toc.yml","items":[{"name":"Visual Studio Test Adapter","href":"vs-test-adapter/Index.html","topicHref":"vs-test-adapter/Index.html"},{"name":"Installation","href":"vs-test-adapter/Adapter-Installation.html","topicHref":"vs-test-adapter/Adapter-Installation.html"},{"name":"Usage","href":"vs-test-adapter/Usage.html","topicHref":"vs-test-adapter/Usage.html"},{"name":"Resources","href":"vs-test-adapter/Resources.html","topicHref":"vs-test-adapter/Resources.html"},{"name":"Known Problems","href":"vs-test-adapter/Known-Problems.html","topicHref":"vs-test-adapter/Known-Problems.html"},{"name":"Configuration with runsettings","href":"vs-test-adapter/Tips-And-Tricks.html","topicHref":"vs-test-adapter/Tips-And-Tricks.html"},{"name":"Trace And Debug Output","href":"vs-test-adapter/Trace-and-Debug.html","topicHref":"vs-test-adapter/Trace-and-Debug.html"},{"name":"Supported Frameworks","href":"vs-test-adapter/Supported-Frameworks.html","topicHref":"vs-test-adapter/Supported-Frameworks.html"},{"name":"Adapter-Engine Compatibility","href":"vs-test-adapter/Adapter-Engine-Compatibility.html","topicHref":"vs-test-adapter/Adapter-Engine-Compatibility.html"},{"name":"Debugging the Adapter","href":"vs-test-adapter/Debugging.html","topicHref":"vs-test-adapter/Debugging.html"},{"name":"Debugger Source-Stepping","href":"vs-test-adapter/Adapter-Source-Stepping.html","topicHref":"vs-test-adapter/Adapter-Source-Stepping.html"},{"name":"Release Notes V4","href":"vs-test-adapter/AdapterV4-Release-Notes.html","topicHref":"vs-test-adapter/AdapterV4-Release-Notes.html"},{"name":"Release Notes V3","href":"vs-test-adapter/AdapterV3-Release-Notes.html","topicHref":"vs-test-adapter/AdapterV3-Release-Notes.html"},{"name":"Release Notes V2","href":"vs-test-adapter/AdapterV2-Release-Notes.html","topicHref":"vs-test-adapter/AdapterV2-Release-Notes.html"},{"name":"License","href":"vs-test-adapter/Adapter-License.html","topicHref":"vs-test-adapter/Adapter-License.html"}]},{"name":"NUnit Engine","href":"nunit-engine/Index.html","topicHref":"nunit-engine/Index.html","includedFrom":"~/articles/nunit-engine/toc.yml","items":[{"name":"Introduction","href":"nunit-engine/Index.html","topicHref":"nunit-engine/Index.html"},{"name":"Getting Started","href":"nunit-engine/Getting-Started.html","topicHref":"nunit-engine/Getting-Started.html"},{"name":"Test Engine API","href":"nunit-engine/Test-Engine-API.html","topicHref":"nunit-engine/Test-Engine-API.html"},{"name":"Engine Extensions","href":"nunit-engine/extensions/Index.html","topicHref":"nunit-engine/extensions/Index.html","includedFrom":"~/articles/nunit-engine/extensions/toc.yml","items":[{"name":"Introduction","href":"nunit-engine/extensions/Index.html","topicHref":"nunit-engine/extensions/Index.html"},{"name":"Available Engine Extensions","href":"nunit-engine/extensions/AvailableExtensions.html","topicHref":"nunit-engine/extensions/AvailableExtensions.html"},{"name":"Installing Engine Extensions","href":"nunit-engine/extensions/Installing-Extensions.html","topicHref":"nunit-engine/extensions/Installing-Extensions.html"},{"name":"Creating Engine Extensions","href":"nunit-engine/extensions/creating-extensions/Index.html","topicHref":"nunit-engine/extensions/creating-extensions/Index.html","includedFrom":"~/articles/nunit-engine/extensions/creating-extensions/toc.yml","items":[{"name":"Introduction","href":"nunit-engine/extensions/creating-extensions/Index.html","topicHref":"nunit-engine/extensions/creating-extensions/Index.html"},{"name":"Writing Engine Extensions","href":"nunit-engine/extensions/creating-extensions/Writing-Engine-Extensions.html","topicHref":"nunit-engine/extensions/creating-extensions/Writing-Engine-Extensions.html"},{"name":"Event Listener Extensions","href":"nunit-engine/extensions/creating-extensions/Event-Listeners.html","topicHref":"nunit-engine/extensions/creating-extensions/Event-Listeners.html"},{"name":"Framework Driver Extensions","href":"nunit-engine/extensions/creating-extensions/Framework-Drivers.html","topicHref":"nunit-engine/extensions/creating-extensions/Framework-Drivers.html"},{"name":"Project Loader Extensions","href":"nunit-engine/extensions/creating-extensions/Project-Loaders.html","topicHref":"nunit-engine/extensions/creating-extensions/Project-Loaders.html"},{"name":"Result Writer Extensions","href":"nunit-engine/extensions/creating-extensions/Result-Writers.html","topicHref":"nunit-engine/extensions/creating-extensions/Result-Writers.html"}]}]},{"name":"Release Notes","href":"nunit-engine/release-notes.html","topicHref":"nunit-engine/release-notes.html"}]},{"name":"NUnit Xamarin Runners","href":"xamarin-runners/index.html","topicHref":"xamarin-runners/index.html","includedFrom":"~/articles/xamarin-runners/toc.yml","items":[{"name":"Index & Options","href":"xamarin-runners/index.html","topicHref":"xamarin-runners/index.html"},{"name":"Getting Started in Visual Studio","href":"xamarin-runners/Getting-Started-in-Visual-Studio.html","topicHref":"xamarin-runners/Getting-Started-in-Visual-Studio.html"},{"name":"Getting Started in VS for Mac","href":"xamarin-runners/Getting-Started-in-Visual-Studio-for-Mac.html","topicHref":"xamarin-runners/Getting-Started-in-Visual-Studio-for-Mac.html"}]},{"name":"VS Test Generator","href":"vs-test-generator/Visual-Studio-Test-Generator.html","topicHref":"vs-test-generator/Visual-Studio-Test-Generator.html","includedFrom":"~/articles/vs-test-generator/toc.yml","items":[{"name":"Visual Studio Test Generator","href":"vs-test-generator/Visual-Studio-Test-Generator.html","topicHref":"vs-test-generator/Visual-Studio-Test-Generator.html"},{"name":"Installation","href":"vs-test-generator/TestGenerator-Installation.html","topicHref":"vs-test-generator/TestGenerator-Installation.html"},{"name":"Release Notes","href":"vs-test-generator/TestGenerator-Release-Notes.html","topicHref":"vs-test-generator/TestGenerator-Release-Notes.html"},{"name":"Release Notes VS2017/VS2019","href":"vs-test-generator/TestGenerator-Release-Notes-VS2017-VS2019.html","topicHref":"vs-test-generator/TestGenerator-Release-Notes-VS2017-VS2019.html"},{"name":"Release Notes VS2015","href":"vs-test-generator/TestGenerator-Release-Notes-VS2015.html","topicHref":"vs-test-generator/TestGenerator-Release-Notes-VS2015.html"}]},{"name":"NUnit Analyzers","href":"nunit-analyzers/NUnit-Analyzers.html","topicHref":"nunit-analyzers/NUnit-Analyzers.html","includedFrom":"~/articles/nunit-analyzers/toc.yml","items":[{"name":"NUnit Analyzers","href":"nunit-analyzers/NUnit-Analyzers.html","topicHref":"nunit-analyzers/NUnit-Analyzers.html","items":[{"name":"NUnit1001","href":"nunit-analyzers/NUnit1001.html","topicHref":"nunit-analyzers/NUnit1001.html"},{"name":"NUnit1002","href":"nunit-analyzers/NUnit1002.html","topicHref":"nunit-analyzers/NUnit1002.html"},{"name":"NUnit1003","href":"nunit-analyzers/NUnit1003.html","topicHref":"nunit-analyzers/NUnit1003.html"},{"name":"NUnit1004","href":"nunit-analyzers/NUnit1004.html","topicHref":"nunit-analyzers/NUnit1004.html"},{"name":"NUnit1005","href":"nunit-analyzers/NUnit1005.html","topicHref":"nunit-analyzers/NUnit1005.html"},{"name":"NUnit1006","href":"nunit-analyzers/NUnit1006.html","topicHref":"nunit-analyzers/NUnit1006.html"},{"name":"NUnit1007","href":"nunit-analyzers/NUnit1007.html","topicHref":"nunit-analyzers/NUnit1007.html"},{"name":"NUnit1008","href":"nunit-analyzers/NUnit1008.html","topicHref":"nunit-analyzers/NUnit1008.html"},{"name":"NUnit1009","href":"nunit-analyzers/NUnit1009.html","topicHref":"nunit-analyzers/NUnit1009.html"},{"name":"NUnit1010","href":"nunit-analyzers/NUnit1010.html","topicHref":"nunit-analyzers/NUnit1010.html"},{"name":"NUnit1011","href":"nunit-analyzers/NUnit1011.html","topicHref":"nunit-analyzers/NUnit1011.html"},{"name":"NUnit1012","href":"nunit-analyzers/NUnit1012.html","topicHref":"nunit-analyzers/NUnit1012.html"},{"name":"NUnit1013","href":"nunit-analyzers/NUnit1013.html","topicHref":"nunit-analyzers/NUnit1013.html"},{"name":"NUnit1014","href":"nunit-analyzers/NUnit1014.html","topicHref":"nunit-analyzers/NUnit1014.html"},{"name":"NUnit1015","href":"nunit-analyzers/NUnit1015.html","topicHref":"nunit-analyzers/NUnit1015.html"},{"name":"NUnit1016","href":"nunit-analyzers/NUnit1016.html","topicHref":"nunit-analyzers/NUnit1016.html"},{"name":"NUnit1017","href":"nunit-analyzers/NUnit1017.html","topicHref":"nunit-analyzers/NUnit1017.html"},{"name":"NUnit1018","href":"nunit-analyzers/NUnit1018.html","topicHref":"nunit-analyzers/NUnit1018.html"},{"name":"NUnit1019","href":"nunit-analyzers/NUnit1019.html","topicHref":"nunit-analyzers/NUnit1019.html"},{"name":"NUnit1020","href":"nunit-analyzers/NUnit1020.html","topicHref":"nunit-analyzers/NUnit1020.html"},{"name":"NUnit1021","href":"nunit-analyzers/NUnit1021.html","topicHref":"nunit-analyzers/NUnit1021.html"},{"name":"NUnit1022","href":"nunit-analyzers/NUnit1022.html","topicHref":"nunit-analyzers/NUnit1022.html"},{"name":"NUnit1023","href":"nunit-analyzers/NUnit1023.html","topicHref":"nunit-analyzers/NUnit1023.html"},{"name":"NUnit1024","href":"nunit-analyzers/NUnit1024.html","topicHref":"nunit-analyzers/NUnit1024.html"},{"name":"NUnit1025","href":"nunit-analyzers/NUnit1025.html","topicHref":"nunit-analyzers/NUnit1025.html"},{"name":"NUnit1026","href":"nunit-analyzers/NUnit1026.html","topicHref":"nunit-analyzers/NUnit1026.html"},{"name":"NUnit1027","href":"nunit-analyzers/NUnit1027.html","topicHref":"nunit-analyzers/NUnit1027.html"},{"name":"NUnit1028","href":"nunit-analyzers/NUnit1028.html","topicHref":"nunit-analyzers/NUnit1028.html"},{"name":"NUnit1029","href":"nunit-analyzers/NUnit1029.html","topicHref":"nunit-analyzers/NUnit1029.html"},{"name":"NUnit1030","href":"nunit-analyzers/NUnit1030.html","topicHref":"nunit-analyzers/NUnit1030.html"},{"name":"NUnit1031","href":"nunit-analyzers/NUnit1031.html","topicHref":"nunit-analyzers/NUnit1031.html"},{"name":"NUnit1032","href":"nunit-analyzers/NUnit1032.html","topicHref":"nunit-analyzers/NUnit1032.html"},{"name":"NUnit2001","href":"nunit-analyzers/NUnit2001.html","topicHref":"nunit-analyzers/NUnit2001.html"},{"name":"NUnit2002","href":"nunit-analyzers/NUnit2002.html","topicHref":"nunit-analyzers/NUnit2002.html"},{"name":"NUnit2003","href":"nunit-analyzers/NUnit2003.html","topicHref":"nunit-analyzers/NUnit2003.html"},{"name":"NUnit2004","href":"nunit-analyzers/NUnit2004.html","topicHref":"nunit-analyzers/NUnit2004.html"},{"name":"NUnit2005","href":"nunit-analyzers/NUnit2005.html","topicHref":"nunit-analyzers/NUnit2005.html"},{"name":"NUnit2006","href":"nunit-analyzers/NUnit2006.html","topicHref":"nunit-analyzers/NUnit2006.html"},{"name":"NUnit2007","href":"nunit-analyzers/NUnit2007.html","topicHref":"nunit-analyzers/NUnit2007.html"},{"name":"NUnit2008","href":"nunit-analyzers/NUnit2008.html","topicHref":"nunit-analyzers/NUnit2008.html"},{"name":"NUnit2009","href":"nunit-analyzers/NUnit2009.html","topicHref":"nunit-analyzers/NUnit2009.html"},{"name":"NUnit2010","href":"nunit-analyzers/NUnit2010.html","topicHref":"nunit-analyzers/NUnit2010.html"},{"name":"NUnit2011","href":"nunit-analyzers/NUnit2011.html","topicHref":"nunit-analyzers/NUnit2011.html"},{"name":"NUnit2012","href":"nunit-analyzers/NUnit2012.html","topicHref":"nunit-analyzers/NUnit2012.html"},{"name":"NUnit2013","href":"nunit-analyzers/NUnit2013.html","topicHref":"nunit-analyzers/NUnit2013.html"},{"name":"NUnit2014","href":"nunit-analyzers/NUnit2014.html","topicHref":"nunit-analyzers/NUnit2014.html"},{"name":"NUnit2015","href":"nunit-analyzers/NUnit2015.html","topicHref":"nunit-analyzers/NUnit2015.html"},{"name":"NUnit2016","href":"nunit-analyzers/NUnit2016.html","topicHref":"nunit-analyzers/NUnit2016.html"},{"name":"NUnit2017","href":"nunit-analyzers/NUnit2017.html","topicHref":"nunit-analyzers/NUnit2017.html"},{"name":"NUnit2018","href":"nunit-analyzers/NUnit2018.html","topicHref":"nunit-analyzers/NUnit2018.html"},{"name":"NUnit2019","href":"nunit-analyzers/NUnit2019.html","topicHref":"nunit-analyzers/NUnit2019.html"},{"name":"NUnit2020","href":"nunit-analyzers/NUnit2020.html","topicHref":"nunit-analyzers/NUnit2020.html"},{"name":"NUnit2021","href":"nunit-analyzers/NUnit2021.html","topicHref":"nunit-analyzers/NUnit2021.html"},{"name":"NUnit2022","href":"nunit-analyzers/NUnit2022.html","topicHref":"nunit-analyzers/NUnit2022.html"},{"name":"NUnit2023","href":"nunit-analyzers/NUnit2023.html","topicHref":"nunit-analyzers/NUnit2023.html"},{"name":"NUnit2024","href":"nunit-analyzers/NUnit2024.html","topicHref":"nunit-analyzers/NUnit2024.html"},{"name":"NUnit2025","href":"nunit-analyzers/NUnit2025.html","topicHref":"nunit-analyzers/NUnit2025.html"},{"name":"NUnit2026","href":"nunit-analyzers/NUnit2026.html","topicHref":"nunit-analyzers/NUnit2026.html"},{"name":"NUnit2027","href":"nunit-analyzers/NUnit2027.html","topicHref":"nunit-analyzers/NUnit2027.html"},{"name":"NUnit2028","href":"nunit-analyzers/NUnit2028.html","topicHref":"nunit-analyzers/NUnit2028.html"},{"name":"NUnit2029","href":"nunit-analyzers/NUnit2029.html","topicHref":"nunit-analyzers/NUnit2029.html"},{"name":"NUnit2030","href":"nunit-analyzers/NUnit2030.html","topicHref":"nunit-analyzers/NUnit2030.html"},{"name":"NUnit2031","href":"nunit-analyzers/NUnit2031.html","topicHref":"nunit-analyzers/NUnit2031.html"},{"name":"NUnit2032","href":"nunit-analyzers/NUnit2032.html","topicHref":"nunit-analyzers/NUnit2032.html"},{"name":"NUnit2033","href":"nunit-analyzers/NUnit2033.html","topicHref":"nunit-analyzers/NUnit2033.html"},{"name":"NUnit2034","href":"nunit-analyzers/NUnit2034.html","topicHref":"nunit-analyzers/NUnit2034.html"},{"name":"NUnit2035","href":"nunit-analyzers/NUnit2035.html","topicHref":"nunit-analyzers/NUnit2035.html"},{"name":"NUnit2036","href":"nunit-analyzers/NUnit2036.html","topicHref":"nunit-analyzers/NUnit2036.html"},{"name":"NUnit2037","href":"nunit-analyzers/NUnit2037.html","topicHref":"nunit-analyzers/NUnit2037.html"},{"name":"NUnit2038","href":"nunit-analyzers/NUnit2038.html","topicHref":"nunit-analyzers/NUnit2038.html"},{"name":"NUnit2039","href":"nunit-analyzers/NUnit2039.html","topicHref":"nunit-analyzers/NUnit2039.html"},{"name":"NUnit2040","href":"nunit-analyzers/NUnit2040.html","topicHref":"nunit-analyzers/NUnit2040.html"},{"name":"NUnit2041","href":"nunit-analyzers/NUnit2041.html","topicHref":"nunit-analyzers/NUnit2041.html"},{"name":"NUnit2042","href":"nunit-analyzers/NUnit2042.html","topicHref":"nunit-analyzers/NUnit2042.html"},{"name":"NUnit2043","href":"nunit-analyzers/NUnit2043.html","topicHref":"nunit-analyzers/NUnit2043.html"},{"name":"NUnit2044","href":"nunit-analyzers/NUnit2044.html","topicHref":"nunit-analyzers/NUnit2044.html"},{"name":"NUnit2045","href":"nunit-analyzers/NUnit2045.html","topicHref":"nunit-analyzers/NUnit2045.html"},{"name":"NUnit2046","href":"nunit-analyzers/NUnit2046.html","topicHref":"nunit-analyzers/NUnit2046.html"},{"name":"NUnit2047","href":"nunit-analyzers/NUnit2047.html","topicHref":"nunit-analyzers/NUnit2047.html"},{"name":"NUnit2048","href":"nunit-analyzers/NUnit2048.html","topicHref":"nunit-analyzers/NUnit2048.html"},{"name":"NUnit2049","href":"nunit-analyzers/NUnit2049.html","topicHref":"nunit-analyzers/NUnit2049.html"},{"name":"NUnit2050","href":"nunit-analyzers/NUnit2050.html","topicHref":"nunit-analyzers/NUnit2050.html"},{"name":"NUnit3001","href":"nunit-analyzers/NUnit3001.html","topicHref":"nunit-analyzers/NUnit3001.html"},{"name":"NUnit3002","href":"nunit-analyzers/NUnit3002.html","topicHref":"nunit-analyzers/NUnit3002.html"},{"name":"NUnit3003","href":"nunit-analyzers/NUnit3003.html","topicHref":"nunit-analyzers/NUnit3003.html"},{"name":"NUnit3004","href":"nunit-analyzers/NUnit3004.html","topicHref":"nunit-analyzers/NUnit3004.html"}]}]},{"name":"Related Project Links","items":[{"name":"TestCentric GUI","href":"https://github.com/TestCentric/testcentric-gui/wiki","topicHref":"https://github.com/TestCentric/testcentric-gui/wiki"},{"name":"NUnit Project Editor","href":"https://github.com/nunit-legacy/nunit-project-editor/wiki/Project-Editor","topicHref":"https://github.com/nunit-legacy/nunit-project-editor/wiki/Project-Editor"}]},{"name":"Developer Info","includedFrom":"~/articles/developer-info/toc.yml","items":[{"name":"The Teams","href":"developer-info/The-Teams.html","topicHref":"developer-info/The-Teams.html"},{"name":"Team Practices","href":"developer-info/Team-Practices.html","topicHref":"developer-info/Team-Practices.html"},{"name":"Specifications","href":"nunit/technical-notes/nunit-internals/specs/Specifications.html","topicHref":"nunit/technical-notes/nunit-internals/specs/Specifications.html","topicUid":"specifications"},{"name":"Notes Toward NUnit 4.0","href":"developer-info/Notes-Toward-NUnit-4.0.html","topicHref":"developer-info/Notes-Toward-NUnit-4.0.html"},{"name":"Best Practices for XML Documentation","href":"developer-info/Best-practices-for-XML-documentation.html","topicHref":"developer-info/Best-practices-for-XML-documentation.html"},{"name":"Coding Standards","href":"developer-info/Coding-Standards.html","topicHref":"developer-info/Coding-Standards.html"},{"name":"Contributions","href":"developer-info/Contributions.html","topicHref":"developer-info/Contributions.html"},{"name":"Issue Tracking","href":"developer-info/Issue-Tracking.html","topicHref":"developer-info/Issue-Tracking.html"},{"name":"Packaging Extensions","href":"developer-info/Packaging-Extensions.html","topicHref":"developer-info/Packaging-Extensions.html"},{"name":"Packaging the Console and Engine","href":"developer-info/Packaging-the-Console-and-Engine.html","topicHref":"developer-info/Packaging-the-Console-and-Engine.html"},{"name":"Packaging the Framework","href":"developer-info/Packaging-the-Framework.html","topicHref":"developer-info/Packaging-the-Framework.html"},{"name":"Packaging the Installer","href":"developer-info/Packaging-the-Installer.html","topicHref":"developer-info/Packaging-the-Installer.html"},{"name":"Packaging the V2 Adapter","href":"developer-info/Packaging-the-V2-Adapter.html","topicHref":"developer-info/Packaging-the-V2-Adapter.html"},{"name":"Packaging the V3/V4 Adapter","href":"developer-info/Packaging-the-V3-and-V4-Adapter.html","topicHref":"developer-info/Packaging-the-V3-and-V4-Adapter.html"}]},{"name":"Legacy (2.x) Docs","href":"legacy/index.html","topicHref":"legacy/index.html"}]} diff --git a/index.json b/index.json index d77b13041..98c85aaee 100644 --- a/index.json +++ b/index.json @@ -1612,7 +1612,7 @@ "articles/nunit-analyzers/NUnit-Analyzers.html": { "href": "articles/nunit-analyzers/NUnit-Analyzers.html", "title": "Overview of implemented NUnit diagnostics and code fixes | NUnit Docs", - "keywords": "Overview of implemented NUnit diagnostics and code fixes In the tables below we use the following symbols: 🔍 - whether the diagnostic is enabled by default or not 📝 - the severity of the diagnostic 💡 - whether the diagnostic has an associated code fix or not The severity of a diagnostic can the one of the following (in increasing severity): 💭 - indicates a severity of Hidden ℹ️ - indicates a severity of Info ⚠️ - indicates a severity of Warning ❗ - indicates a severity of Error Structure Rules (NUnit1001 - ) Rules which enforce structural requirements on the test code. Id Title 🔍 📝 💡 NUnit1001 The individual arguments provided by a TestCaseAttribute must match the type of the corresponding parameter of the method ✅ ❗ ❌ NUnit1002 The TestCaseSource should use nameof operator to specify target ✅ ⚠️ ✅ NUnit1003 The TestCaseAttribute provided too few arguments ✅ ❗ ❌ NUnit1004 The TestCaseAttribute provided too many arguments ✅ ❗ ❌ NUnit1005 The type of the value specified via ExpectedResult must match the return type of the method ✅ ❗ ❌ NUnit1006 ExpectedResult must not be specified when the method returns void ✅ ❗ ❌ NUnit1007 The method has non-void return type, but no result is expected in ExpectedResult ✅ ❗ ❌ NUnit1008 Specifying ParallelScope.Self on assembly level has no effect ✅ ⚠️ ❌ NUnit1009 One may not specify ParallelScope.Children on a non-parameterized test method ✅ ❗ ❌ NUnit1010 One may not specify ParallelScope.Fixtures on a test method ✅ ❗ ❌ NUnit1011 The TestCaseSource argument does not specify an existing member ✅ ❗ ❌ NUnit1012 The async test method must have a non-void return type ✅ ❗ ❌ NUnit1013 The async test method must have a non-generic Task return type when no result is expected ✅ ❗ ❌ NUnit1014 The async test method must have a Task return type when a result is expected ✅ ❗ ❌ NUnit1015 The source type does not implement IEnumerable ✅ ❗ ❌ NUnit1016 The source type does not have a default constructor ✅ ❗ ❌ NUnit1017 The specified source is not static ✅ ❗ ❌ NUnit1018 The number of parameters provided by the TestCaseSource does not match the number of parameters in the target method ✅ ❗ ❌ NUnit1019 The source specified by the TestCaseSource does not return an IEnumerable or a type that implements IEnumerable ✅ ❗ ❌ NUnit1020 The TestCaseSource provides parameters to a source - field or property - that expects no parameters ✅ ❗ ❌ NUnit1021 The ValueSource should use nameof operator to specify target ✅ ⚠️ ✅ NUnit1022 The specified source is not static ✅ ❗ ❌ NUnit1023 The target method expects parameters which cannot be supplied by the ValueSource ✅ ❗ ❌ NUnit1024 The source specified by the ValueSource does not return an IEnumerable or a type that implements IEnumerable ✅ ❗ ❌ NUnit1025 The ValueSource argument does not specify an existing member ✅ ❗ ❌ NUnit1026 The test or setup/teardown method is not public ✅ ❗ ✅ NUnit1027 The test method has parameters, but no arguments are supplied by attributes ✅ ❗ ❌ NUnit1028 The non-test method is public ✅ ℹ️ ✅ NUnit1029 The number of parameters provided by the TestCaseSource does not match the number of parameters in the Test method ✅ ❗ ❌ NUnit1030 The type of parameter provided by the TestCaseSource does not match the type of the parameter in the Test method ✅ ❗ ❌ NUnit1031 The individual arguments provided by a ValuesAttribute must match the type of the corresponding parameter of the method ✅ ❗ ❌ NUnit1032 An IDisposable field/property should be Disposed in a TearDown method ✅ ❗ ❌ Assertion Rules (NUnit2001 - ) Rules which improve assertions in the test code. Id Title 🔍 📝 💡 NUnit2001 Consider using Assert.That(expr, Is.False) instead of Assert.False(expr) ✅ ℹ️ ✅ NUnit2002 Consider using Assert.That(expr, Is.False) instead of Assert.IsFalse(expr) ✅ ℹ️ ✅ NUnit2003 Consider using Assert.That(expr, Is.True) instead of Assert.IsTrue(expr) ✅ ℹ️ ✅ NUnit2004 Consider using Assert.That(expr, Is.True) instead of Assert.True(expr) ✅ ℹ️ ✅ NUnit2005 Consider using Assert.That(actual, Is.EqualTo(expected)) instead of Assert.AreEqual(expected, actual) ✅ ⚠️ ✅ NUnit2006 Consider using Assert.That(actual, Is.Not.EqualTo(expected)) instead of Assert.AreNotEqual(expected, actual) ✅ ⚠️ ✅ NUnit2007 The actual value should not be a constant ✅ ⚠️ ✅ NUnit2008 Incorrect IgnoreCase usage ✅ ⚠️ ❌ NUnit2009 The same value has been provided as both the actual and the expected argument ✅ ⚠️ ❌ NUnit2010 Use EqualConstraint for better assertion messages in case of failure ✅ ℹ️ ✅ NUnit2011 Use ContainsConstraint for better assertion messages in case of failure ✅ ℹ️ ✅ NUnit2012 Use StartsWithConstraint for better assertion messages in case of failure ✅ ℹ️ ✅ NUnit2013 Use EndsWithConstraint for better assertion messages in case of failure ✅ ℹ️ ✅ NUnit2014 Use SomeItemsConstraint for better assertion messages in case of failure ✅ ℹ️ ✅ NUnit2015 Consider using Assert.That(actual, Is.SameAs(expected)) instead of Assert.AreSame(expected, actual) ✅ ⚠️ ✅ NUnit2016 Consider using Assert.That(expr, Is.Null) instead of Assert.Null(expr) ✅ ℹ️ ✅ NUnit2017 Consider using Assert.That(expr, Is.Null) instead of Assert.IsNull(expr) ✅ ℹ️ ✅ NUnit2018 Consider using Assert.That(expr, Is.Not.Null) instead of Assert.NotNull(expr) ✅ ℹ️ ✅ NUnit2019 Consider using Assert.That(expr, Is.Not.Null) instead of Assert.IsNotNull(expr) ✅ ℹ️ ✅ NUnit2020 Incompatible types for SameAs constraint ✅ ❗ ❌ NUnit2021 Incompatible types for EqualTo constraint ✅ ❗ ❌ NUnit2022 Missing property required for constraint ✅ ❗ ✅ NUnit2023 Invalid NullConstraint usage ✅ ❗ ❌ NUnit2024 Wrong actual type used with String Constraint ✅ ❗ ❌ NUnit2025 Wrong actual type used with ContainsConstraint ✅ ❗ ❌ NUnit2026 Wrong actual type used with the SomeItemsConstraint with EqualConstraint ✅ ❗ ❌ NUnit2027 Consider using Assert.That(actual, Is.GreaterThan(expected)) instead of Assert.Greater(actual, expected) ✅ ℹ️ ✅ NUnit2028 Consider using Assert.That(actual, Is.GreaterThanOrEqualTo(expected)) instead of Assert.GreaterOrEqual(actual, expected) ✅ ℹ️ ✅ NUnit2029 Consider using Assert.That(actual, Is.LessThan(expected)) instead of Assert.Less(actual, expected) ✅ ℹ️ ✅ NUnit2030 Consider using Assert.That(actual, Is.LessThanOrEqualTo(expected)) instead of Assert.LessOrEqual(actual, expected) ✅ ℹ️ ✅ NUnit2031 Consider using Assert.That(actual, Is.Not.SameAs(expected)) instead of Assert.AreNotSame(expected, actual) ✅ ⚠️ ✅ NUnit2032 Consider using Assert.That(expr, Is.Zero) instead of Assert.Zero(expr) ✅ ℹ️ ✅ NUnit2033 Consider using Assert.That(expr, Is.Not.Zero) instead of Assert.NotZero(expr) ✅ ℹ️ ✅ NUnit2034 Consider using Assert.That(expr, Is.NaN) instead of Assert.IsNaN(expr) ✅ ℹ️ ✅ NUnit2035 Consider using Assert.That(collection, Is.Empty) instead of Assert.IsEmpty(collection) ✅ ℹ️ ✅ NUnit2036 Consider using Assert.That(collection, Is.Not.Empty) instead of Assert.IsNotEmpty(collection) ✅ ℹ️ ✅ NUnit2037 Consider using Assert.That(collection, Does.Contain(instance)) instead of Assert.Contains(instance, collection) ✅ ℹ️ ✅ NUnit2038 Consider using Assert.That(actual, Is.InstanceOf(expected)) instead of Assert.IsInstanceOf(expected, actual) ✅ ℹ️ ✅ NUnit2039 Consider using Assert.That(actual, Is.Not.InstanceOf(expected)) instead of Assert.IsNotInstanceOf(expected, actual) ✅ ℹ️ ✅ NUnit2040 Non-reference types for SameAs constraint ✅ ❗ ✅ NUnit2041 Incompatible types for comparison constraint ✅ ❗ ❌ NUnit2042 Comparison constraint on object ✅ ℹ️ ❌ NUnit2043 Use ComparisonConstraint for better assertion messages in case of failure ✅ ℹ️ ✅ NUnit2044 Non-delegate actual parameter ✅ ❗ ✅ NUnit2045 Use Assert.Multiple ✅ ℹ️ ✅ NUnit2046 Use CollectionConstraint for better assertion messages in case of failure ✅ ℹ️ ✅ NUnit2047 Incompatible types for Within constraint ✅ ⚠️ ✅ Suppressor Rules (NUnit3001 - ) Rules which suppress compiler errors based on context. Note that these rules are only available in the .NET Standard 2.0 builds (version 3.0.0 and above) which require Visual Studio 2019. Id Title 🔍 📝 💡 NUnit3001 Expression was checked in an Assert.NotNull, Assert.IsNotNull or Assert.That call ✅ ℹ️ ❌ NUnit3002 Field/Property is initialized in SetUp or OneTimeSetUp method ✅ ℹ️ ❌ NUnit3003 Class is an NUnit TestFixture and is instantiated using reflection ✅ ℹ️ ❌ NUnit3004 Field should be Disposed in TearDown or OneTimeTearDown method ✅ ℹ️ ❌" + "keywords": "Overview of implemented NUnit diagnostics and code fixes In the tables below we use the following symbols: 🔍 - whether the diagnostic is enabled by default or not 📝 - the severity of the diagnostic 💡 - whether the diagnostic has an associated code fix or not The severity of a diagnostic can the one of the following (in increasing severity): 💭 - indicates a severity of Hidden ℹ️ - indicates a severity of Info ⚠️ - indicates a severity of Warning ❗ - indicates a severity of Error Structure Rules (NUnit1001 - ) Rules which enforce structural requirements on the test code. Id Title 🔍 📝 💡 NUnit1001 The individual arguments provided by a TestCaseAttribute must match the type of the corresponding parameter of the method ✅ ❗ ❌ NUnit1002 The TestCaseSource should use nameof operator to specify target ✅ ⚠️ ✅ NUnit1003 The TestCaseAttribute provided too few arguments ✅ ❗ ❌ NUnit1004 The TestCaseAttribute provided too many arguments ✅ ❗ ❌ NUnit1005 The type of the value specified via ExpectedResult must match the return type of the method ✅ ❗ ❌ NUnit1006 ExpectedResult must not be specified when the method returns void ✅ ❗ ❌ NUnit1007 The method has non-void return type, but no result is expected in ExpectedResult ✅ ❗ ❌ NUnit1008 Specifying ParallelScope.Self on assembly level has no effect ✅ ⚠️ ❌ NUnit1009 One may not specify ParallelScope.Children on a non-parameterized test method ✅ ❗ ❌ NUnit1010 One may not specify ParallelScope.Fixtures on a test method ✅ ❗ ❌ NUnit1011 The TestCaseSource argument does not specify an existing member ✅ ❗ ❌ NUnit1012 The async test method must have a non-void return type ✅ ❗ ❌ NUnit1013 The async test method must have a non-generic Task return type when no result is expected ✅ ❗ ❌ NUnit1014 The async test method must have a Task return type when a result is expected ✅ ❗ ❌ NUnit1015 The source type does not implement I(Async)Enumerable ✅ ❗ ❌ NUnit1016 The source type does not have a default constructor ✅ ❗ ❌ NUnit1017 The specified source is not static ✅ ❗ ❌ NUnit1018 The number of parameters provided by the TestCaseSource does not match the number of parameters in the target method ✅ ❗ ❌ NUnit1019 The source specified by the TestCaseSource does not return an I(Async)Enumerable or a type that implements I(Async)Enumerable ✅ ❗ ❌ NUnit1020 The TestCaseSource provides parameters to a source - field or property - that expects no parameters ✅ ❗ ❌ NUnit1021 The ValueSource should use nameof operator to specify target ✅ ⚠️ ✅ NUnit1022 The specified source is not static ✅ ❗ ❌ NUnit1023 The target method expects parameters which cannot be supplied by the ValueSource ✅ ❗ ❌ NUnit1024 The source specified by the ValueSource does not return an I(Async)Enumerable or a type that implements I(Async)Enumerable ✅ ❗ ❌ NUnit1025 The ValueSource argument does not specify an existing member ✅ ❗ ❌ NUnit1026 The test or setup/teardown method is not public ✅ ❗ ✅ NUnit1027 The test method has parameters, but no arguments are supplied by attributes ✅ ❗ ❌ NUnit1028 The non-test method is public ✅ ℹ️ ✅ NUnit1029 The number of parameters provided by the TestCaseSource does not match the number of parameters in the Test method ✅ ❗ ❌ NUnit1030 The type of parameter provided by the TestCaseSource does not match the type of the parameter in the Test method ✅ ❗ ❌ NUnit1031 The individual arguments provided by a ValuesAttribute must match the type of the corresponding parameter of the method ✅ ❗ ❌ NUnit1032 An IDisposable field/property should be Disposed in a TearDown method ✅ ❗ ❌ Assertion Rules (NUnit2001 - ) Rules which improve assertions in the test code. Id Title 🔍 📝 💡 NUnit2001 Consider using Assert.That(expr, Is.False) instead of ClassicAssert.False(expr) ✅ ℹ️ ✅ NUnit2002 Consider using Assert.That(expr, Is.False) instead of ClassicAssert.IsFalse(expr) ✅ ℹ️ ✅ NUnit2003 Consider using Assert.That(expr, Is.True) instead of ClassicAssert.IsTrue(expr) ✅ ℹ️ ✅ NUnit2004 Consider using Assert.That(expr, Is.True) instead of ClassicAssert.True(expr) ✅ ℹ️ ✅ NUnit2005 Consider using Assert.That(actual, Is.EqualTo(expected)) instead of ClassicAssert.AreEqual(expected, actual) ✅ ⚠️ ✅ NUnit2006 Consider using Assert.That(actual, Is.Not.EqualTo(expected)) instead of ClassicAssert.AreNotEqual(expected, actual) ✅ ⚠️ ✅ NUnit2007 The actual value should not be a constant ✅ ⚠️ ✅ NUnit2008 Incorrect IgnoreCase usage ✅ ⚠️ ❌ NUnit2009 The same value has been provided as both the actual and the expected argument ✅ ⚠️ ❌ NUnit2010 Use EqualConstraint for better assertion messages in case of failure ✅ ℹ️ ✅ NUnit2011 Use ContainsConstraint for better assertion messages in case of failure ✅ ℹ️ ✅ NUnit2012 Use StartsWithConstraint for better assertion messages in case of failure ✅ ℹ️ ✅ NUnit2013 Use EndsWithConstraint for better assertion messages in case of failure ✅ ℹ️ ✅ NUnit2014 Use SomeItemsConstraint for better assertion messages in case of failure ✅ ℹ️ ✅ NUnit2015 Consider using Assert.That(actual, Is.SameAs(expected)) instead of ClassicAssert.AreSame(expected, actual) ✅ ⚠️ ✅ NUnit2016 Consider using Assert.That(expr, Is.Null) instead of ClassicAssert.Null(expr) ✅ ℹ️ ✅ NUnit2017 Consider using Assert.That(expr, Is.Null) instead of ClassicAssert.IsNull(expr) ✅ ℹ️ ✅ NUnit2018 Consider using Assert.That(expr, Is.Not.Null) instead of ClassicAssert.NotNull(expr) ✅ ℹ️ ✅ NUnit2019 Consider using Assert.That(expr, Is.Not.Null) instead of ClassicAssert.IsNotNull(expr) ✅ ℹ️ ✅ NUnit2020 Incompatible types for SameAs constraint ✅ ❗ ❌ NUnit2021 Incompatible types for EqualTo constraint ✅ ❗ ❌ NUnit2022 Missing property required for constraint ✅ ❗ ✅ NUnit2023 Invalid NullConstraint usage ✅ ❗ ❌ NUnit2024 Wrong actual type used with String Constraint ✅ ❗ ❌ NUnit2025 Wrong actual type used with ContainsConstraint ❌ 💭 ❌ NUnit2026 Wrong actual type used with the SomeItemsConstraint with EqualConstraint ✅ ❗ ❌ NUnit2027 Consider using Assert.That(actual, Is.GreaterThan(expected)) instead of ClassicAssert.Greater(actual, expected) ✅ ℹ️ ✅ NUnit2028 Consider using Assert.That(actual, Is.GreaterThanOrEqualTo(expected)) instead of ClassicAssert.GreaterOrEqual(actual, expected) ✅ ℹ️ ✅ NUnit2029 Consider using Assert.That(actual, Is.LessThan(expected)) instead of ClassicAssert.Less(actual, expected) ✅ ℹ️ ✅ NUnit2030 Consider using Assert.That(actual, Is.LessThanOrEqualTo(expected)) instead of ClassicAssert.LessOrEqual(actual, expected) ✅ ℹ️ ✅ NUnit2031 Consider using Assert.That(actual, Is.Not.SameAs(expected)) instead of ClassicAssert.AreNotSame(expected, actual) ✅ ⚠️ ✅ NUnit2032 Consider using Assert.That(expr, Is.Zero) instead of ClassicAssert.Zero(expr) ✅ ℹ️ ✅ NUnit2033 Consider using Assert.That(expr, Is.Not.Zero) instead of ClassicAssert.NotZero(expr) ✅ ℹ️ ✅ NUnit2034 Consider using Assert.That(expr, Is.NaN) instead of ClassicAssert.IsNaN(expr) ✅ ℹ️ ✅ NUnit2035 Consider using Assert.That(collection, Is.Empty) instead of ClassicAssert.IsEmpty(collection) ✅ ℹ️ ✅ NUnit2036 Consider using Assert.That(collection, Is.Not.Empty) instead of ClassicAssert.IsNotEmpty(collection) ✅ ℹ️ ✅ NUnit2037 Consider using Assert.That(collection, Does.Contain(instance)) instead of ClassicAssert.Contains(instance, collection) ✅ ℹ️ ✅ NUnit2038 Consider using Assert.That(actual, Is.InstanceOf(expected)) instead of ClassicAssert.IsInstanceOf(expected, actual) ✅ ℹ️ ✅ NUnit2039 Consider using Assert.That(actual, Is.Not.InstanceOf(expected)) instead of ClassicAssert.IsNotInstanceOf(expected, actual) ✅ ℹ️ ✅ NUnit2040 Non-reference types for SameAs constraint ✅ ❗ ✅ NUnit2041 Incompatible types for comparison constraint ✅ ❗ ❌ NUnit2042 Comparison constraint on object ✅ ℹ️ ❌ NUnit2043 Use ComparisonConstraint for better assertion messages in case of failure ✅ ℹ️ ✅ NUnit2044 Non-delegate actual parameter ✅ ❗ ✅ NUnit2045 Use Assert.Multiple ✅ ℹ️ ✅ NUnit2046 Use CollectionConstraint for better assertion messages in case of failure ✅ ℹ️ ✅ NUnit2047 Incompatible types for Within constraint ✅ ⚠️ ✅ NUnit2048 Consider using Assert.That(...) instead of StringAssert(...) ✅ ⚠️ ✅ NUnit2049 Consider using Assert.That(...) instead of CollectionAssert(...) ✅ ⚠️ ✅ NUnit2050 NUnit 4 no longer supports string.Format specification ✅ ❗ ✅ Suppressor Rules (NUnit3001 - ) Rules which suppress compiler errors based on context. Note that these rules are only available in the .NET Standard 2.0 builds (version 3.0.0 and above) which require Visual Studio 2019 (version 16.3) or newer. Id Title 🔍 📝 💡 NUnit3001 Expression was checked in an ClassicAssert.NotNull, ClassicAssert.IsNotNull or Assert.That call ✅ ℹ️ ❌ NUnit3002 Field/Property is initialized in SetUp or OneTimeSetUp method ✅ ℹ️ ❌ NUnit3003 Class is an NUnit TestFixture and is instantiated using reflection ✅ ℹ️ ❌ NUnit3004 Field should be Disposed in TearDown or OneTimeTearDown method ✅ ℹ️ ❌" }, "articles/nunit-analyzers/NUnit1001.html": { "href": "articles/nunit-analyzers/NUnit1001.html", @@ -1687,17 +1687,17 @@ "articles/nunit-analyzers/NUnit1015.html": { "href": "articles/nunit-analyzers/NUnit1015.html", "title": "NUnit1015 | NUnit Docs", - "keywords": "NUnit1015 The source type does not implement IEnumerable Topic Value Id NUnit1015 Severity Error Enabled True Category Structure Code TestCaseSourceUsesStringAnalyzer Description The source type must implement IEnumerable in order to provide test cases. Motivation To prevent tests that will fail at runtime due to improper construction. How to fix violations Example Violation public class MyTestClass { [TestCaseSource(typeof(DivideCases))] public void DivideTest(int n, int d, int q) { Assert.AreEqual(q, n / d); } } class DivideCases { public IEnumerator GetData() { yield return new object[] { 12, 3, 4 }; yield return new object[] { 12, 2, 6 }; yield return new object[] { 12, 4, 3 }; } } Explanation In the sample above, the class DivideCases does not implement IEnumerable. However, source types specified by TestCaseSource must implement IEnumerable. Fix Make the source type implement IEnumerable: public class MyTestClass { [TestCaseSource(typeof(DivideCases))] public void DivideTest(int n, int d, int q) { Assert.AreEqual(q, n / d); } } class DivideCases : IEnumerable { public IEnumerator GetEnumerator() { yield return new object[] { 12, 3, 4 }; yield return new object[] { 12, 2, 6 }; yield return new object[] { 12, 4, 3 }; } } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit1015: The source type does not implement IEnumerable dotnet_diagnostic.NUnit1015.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit1015 // The source type does not implement IEnumerable Code violating the rule here #pragma warning restore NUnit1015 // The source type does not implement IEnumerable Or put this at the top of the file to disable all instances. #pragma warning disable NUnit1015 // The source type does not implement IEnumerable Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Structure\", \"NUnit1015:The source type does not implement IEnumerable\", Justification = \"Reason...\")]" + "keywords": "NUnit1015 The source type does not implement I(Async)Enumerable Topic Value Id NUnit1015 Severity Error Enabled True Category Structure Code TestCaseSourceUsesStringAnalyzer Description The source type must implement I(Async)Enumerable in order to provide test cases. Motivation To prevent tests that will fail at runtime due to improper construction. How to fix violations Example Violation public class MyTestClass { [TestCaseSource(typeof(DivideCases))] public void DivideTest(int n, int d, int q) { ClassicAssert.AreEqual(q, n / d); } } class DivideCases { public IEnumerator GetData() { yield return new object[] { 12, 3, 4 }; yield return new object[] { 12, 2, 6 }; yield return new object[] { 12, 4, 3 }; } } Explanation In the sample above, the class DivideCases does not implement IEnumerable nor IAsyncEnumerable However, source types specified by TestCaseSource must implement IEnumerable or IAsyncEnumerable. Fix Make the source type implement IEnumerable or IAsyncEnumerable public class MyTestClass { [TestCaseSource(typeof(DivideCases))] public void DivideTest(int n, int d, int q) { ClassicAssert.AreEqual(q, n / d); } } class DivideCases : IEnumerable { public IEnumerator GetEnumerator() { yield return new object[] { 12, 3, 4 }; yield return new object[] { 12, 2, 6 }; yield return new object[] { 12, 4, 3 }; } } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit1015: The source type does not implement I(Async)Enumerable dotnet_diagnostic.NUnit1015.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit1015 // The source type does not implement I(Async)Enumerable Code violating the rule here #pragma warning restore NUnit1015 // The source type does not implement I(Async)Enumerable Or put this at the top of the file to disable all instances. #pragma warning disable NUnit1015 // The source type does not implement I(Async)Enumerable Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Structure\", \"NUnit1015:The source type does not implement I(Async)Enumerable\", Justification = \"Reason...\")]" }, "articles/nunit-analyzers/NUnit1016.html": { "href": "articles/nunit-analyzers/NUnit1016.html", "title": "NUnit1016 | NUnit Docs", - "keywords": "NUnit1016 The source type does not have a default constructor Topic Value Id NUnit1016 Severity Error Enabled True Category Structure Code TestCaseSourceUsesStringAnalyzer Description The source type must have a default constructor in order to provide test cases. Motivation To prevent tests that will fail at runtime due to improper construction. How to fix violations Example Violation public class MyTestClass { [TestCaseSource(typeof(DivideCases))] public void DivideTest(int n, int d, int q) { Assert.AreEqual(q, n / d); } } class DivideCases : IEnumerable { public DivideCases(int i) { } public IEnumerator GetEnumerator() { yield return new object[] { 12, 3, 4 }; yield return new object[] { 12, 2, 6 }; yield return new object[] { 12, 4, 3 }; } } Explanation In the sample above, the class DivideCases does not have a default constructor - i.e. a constructor with no parameters. However, source types specified by TestCaseSource must have a default constructor. Fix Add a default constructor to the source type (or remove the parameters from an existing constructor): public class MyTestClass { [TestCaseSource(typeof(DivideCases))] public void DivideTest(int n, int d, int q) { Assert.AreEqual(q, n / d); } } class DivideCases : IEnumerable { public DivideCases() { } public DivideCases(int i) { } public IEnumerator GetEnumerator() { yield return new object[] { 12, 3, 4 }; yield return new object[] { 12, 2, 6 }; yield return new object[] { 12, 4, 3 }; } } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit1016: The source type does not have a default constructor dotnet_diagnostic.NUnit1016.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit1016 // The source type does not have a default constructor Code violating the rule here #pragma warning restore NUnit1016 // The source type does not have a default constructor Or put this at the top of the file to disable all instances. #pragma warning disable NUnit1016 // The source type does not have a default constructor Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Structure\", \"NUnit1016:The source type does not have a default constructor\", Justification = \"Reason...\")]" + "keywords": "NUnit1016 The source type does not have a default constructor Topic Value Id NUnit1016 Severity Error Enabled True Category Structure Code TestCaseSourceUsesStringAnalyzer Description The source type must have a default constructor in order to provide test cases. Motivation To prevent tests that will fail at runtime due to improper construction. How to fix violations Example Violation public class MyTestClass { [TestCaseSource(typeof(DivideCases))] public void DivideTest(int n, int d, int q) { ClassicAssert.AreEqual(q, n / d); } } class DivideCases : IEnumerable { public DivideCases(int i) { } public IEnumerator GetEnumerator() { yield return new object[] { 12, 3, 4 }; yield return new object[] { 12, 2, 6 }; yield return new object[] { 12, 4, 3 }; } } Explanation In the sample above, the class DivideCases does not have a default constructor - i.e. a constructor with no parameters. However, source types specified by TestCaseSource must have a default constructor. Fix Add a default constructor to the source type (or remove the parameters from an existing constructor): public class MyTestClass { [TestCaseSource(typeof(DivideCases))] public void DivideTest(int n, int d, int q) { ClassicAssert.AreEqual(q, n / d); } } class DivideCases : IEnumerable { public DivideCases() { } public DivideCases(int i) { } public IEnumerator GetEnumerator() { yield return new object[] { 12, 3, 4 }; yield return new object[] { 12, 2, 6 }; yield return new object[] { 12, 4, 3 }; } } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit1016: The source type does not have a default constructor dotnet_diagnostic.NUnit1016.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit1016 // The source type does not have a default constructor Code violating the rule here #pragma warning restore NUnit1016 // The source type does not have a default constructor Or put this at the top of the file to disable all instances. #pragma warning disable NUnit1016 // The source type does not have a default constructor Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Structure\", \"NUnit1016:The source type does not have a default constructor\", Justification = \"Reason...\")]" }, "articles/nunit-analyzers/NUnit1017.html": { "href": "articles/nunit-analyzers/NUnit1017.html", "title": "NUnit1017 | NUnit Docs", - "keywords": "NUnit1017 The specified source is not static Topic Value Id NUnit1017 Severity Error Enabled True Category Structure Code TestCaseSourceUsesStringAnalyzer Description The specified source must be static. Motivation To prevent tests that will fail at runtime due to improper construction. How to fix violations Example Violation public class MyTestClass { [TestCaseSource(nameof(DivideCases))] public void DivideTest(int n, int d, int q) { Assert.AreEqual(q, n / d); } object[] DivideCases = { new object[] { 12, 3, 4 }, new object[] { 12, 2, 6 }, new object[] { 12, 4, 3 } }; } Explanation In the sample above, DivideCases is not a static field. However, sources specified by TestCaseSource must be static. Fix Make the source static: public class MyTestClass { [TestCaseSource(nameof(DivideCases))] public void DivideTest(int n, int d, int q) { Assert.AreEqual(q, n / d); } static object[] DivideCases = { new object[] { 12, 3, 4 }, new object[] { 12, 2, 6 }, new object[] { 12, 4, 3 } }; } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit1017: The specified source is not static dotnet_diagnostic.NUnit1017.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit1017 // The specified source is not static Code violating the rule here #pragma warning restore NUnit1017 // The specified source is not static Or put this at the top of the file to disable all instances. #pragma warning disable NUnit1017 // The specified source is not static Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Structure\", \"NUnit1017:The specified source is not static\", Justification = \"Reason...\")]" + "keywords": "NUnit1017 The specified source is not static Topic Value Id NUnit1017 Severity Error Enabled True Category Structure Code TestCaseSourceUsesStringAnalyzer Description The specified source must be static. Motivation To prevent tests that will fail at runtime due to improper construction. How to fix violations Example Violation public class MyTestClass { [TestCaseSource(nameof(DivideCases))] public void DivideTest(int n, int d, int q) { ClassicAssert.AreEqual(q, n / d); } object[] DivideCases = { new object[] { 12, 3, 4 }, new object[] { 12, 2, 6 }, new object[] { 12, 4, 3 } }; } Explanation In the sample above, DivideCases is not a static field. However, sources specified by TestCaseSource must be static. Fix Make the source static: public class MyTestClass { [TestCaseSource(nameof(DivideCases))] public void DivideTest(int n, int d, int q) { ClassicAssert.AreEqual(q, n / d); } static object[] DivideCases = { new object[] { 12, 3, 4 }, new object[] { 12, 2, 6 }, new object[] { 12, 4, 3 } }; } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit1017: The specified source is not static dotnet_diagnostic.NUnit1017.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit1017 // The specified source is not static Code violating the rule here #pragma warning restore NUnit1017 // The specified source is not static Or put this at the top of the file to disable all instances. #pragma warning disable NUnit1017 // The specified source is not static Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Structure\", \"NUnit1017:The specified source is not static\", Justification = \"Reason...\")]" }, "articles/nunit-analyzers/NUnit1018.html": { "href": "articles/nunit-analyzers/NUnit1018.html", @@ -1707,12 +1707,12 @@ "articles/nunit-analyzers/NUnit1019.html": { "href": "articles/nunit-analyzers/NUnit1019.html", "title": "NUnit1019 | NUnit Docs", - "keywords": "NUnit1019 The source specified by the TestCaseSource does not return an IEnumerable or a type that implements IEnumerable Topic Value Id NUnit1019 Severity Error Enabled True Category Structure Code TestCaseSourceUsesStringAnalyzer Description The source specified by the TestCaseSource must return an IEnumerable or a type that implements IEnumerable. Motivation To prevent tests that will fail at runtime due to improper construction. How to fix violations Example Violation public class AnalyzeWhenSourceDoesProvideIEnumerable { private static readonly int testCases = 42; [TestCaseSource(nameof(testCases))] public void Test(int input) { } } Explanation In the sample above, the source specified by TestCaseSource - the field testCases - does not return an IEnumerable or a type that implements IEnumerable, instead it returns an int. However, sources specified by TestCaseSource must return an IEnumerable or a type that implements IEnumerable.. Fix Change testCases to return an IEnumerable or a type that implements IEnumerable: public class AnalyzeWhenSourceDoesProvideIEnumerable { private static readonly int[] testCases = new int[] { 1, 2, 42 }; [TestCaseSource(nameof(testCases))] public void Test(int input) { } } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit1019: The source specified by the TestCaseSource does not return an IEnumerable or a type that implements IEnumerable dotnet_diagnostic.NUnit1019.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit1019 // The source specified by the TestCaseSource does not return an IEnumerable or a type that implements IEnumerable Code violating the rule here #pragma warning restore NUnit1019 // The source specified by the TestCaseSource does not return an IEnumerable or a type that implements IEnumerable Or put this at the top of the file to disable all instances. #pragma warning disable NUnit1019 // The source specified by the TestCaseSource does not return an IEnumerable or a type that implements IEnumerable Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Structure\", \"NUnit1019:The source specified by the TestCaseSource does not return an IEnumerable or a type that implements IEnumerable\", Justification = \"Reason...\")]" + "keywords": "NUnit1019 The source specified by the TestCaseSource does not return an I(Async)Enumerable or a type that implements I(Async)Enumerable Topic Value Id NUnit1019 Severity Error Enabled True Category Structure Code TestCaseSourceUsesStringAnalyzer Description The source specified by the TestCaseSource must return an I(Async)Enumerable or a type that implements I(Async)Enumerable. Motivation To prevent tests that will fail at runtime due to improper construction. How to fix violations Example Violation public class AnalyzeWhenSourceDoesProvideIEnumerable { private static readonly int testCases = 42; [TestCaseSource(nameof(testCases))] public void Test(int input) { } } Explanation In the sample above, the source specified by TestCaseSource - the field testCases - does not return an I(Async)Enumerable or a type that implements I(Async)Enumerable, instead it returns an int. However, sources specified by TestCaseSource must return an I(Async)Enumerable or a type that implements I(Async)Enumerable.. Fix Change testCases to return an I(Async)Enumerable or a type that implements I(Async)Enumerable: public class AnalyzeWhenSourceDoesProvideIEnumerable { private static readonly int[] testCases = new int[] { 1, 2, 42 }; [TestCaseSource(nameof(testCases))] public void Test(int input) { } } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit1019: The source specified by the TestCaseSource does not return an I(Async)Enumerable or a type that implements I(Async)Enumerable dotnet_diagnostic.NUnit1019.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit1019 // The source specified by the TestCaseSource does not return an I(Async)Enumerable or a type that implements I(Async)Enumerable Code violating the rule here #pragma warning restore NUnit1019 // The source specified by the TestCaseSource does not return an I(Async)Enumerable or a type that implements I(Async)Enumerable Or put this at the top of the file to disable all instances. #pragma warning disable NUnit1019 // The source specified by the TestCaseSource does not return an I(Async)Enumerable or a type that implements I(Async)Enumerable Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Structure\", \"NUnit1019:The source specified by the TestCaseSource does not return an I(Async)Enumerable or a type that implements I(Async)Enumerable\", Justification = \"Reason...\")]" }, "articles/nunit-analyzers/NUnit1020.html": { "href": "articles/nunit-analyzers/NUnit1020.html", "title": "NUnit1020 | NUnit Docs", - "keywords": "NUnit1020 The TestCaseSource provides parameters to a source - field or property - that expects no parameters Topic Value Id NUnit1020 Severity Error Enabled True Category Structure Code TestCaseSourceUsesStringAnalyzer Description The TestCaseSource must not provide any parameters when the source is a field or a property. Motivation To prevent tests that will fail at runtime due to improper construction. How to fix violations Example Violation public class MyTestClass { [TestCaseSource(nameof(DivideCases), new object[] { \"Testing\" })] public void DivideTest(int n, int d, int q) { Assert.AreEqual(q, n / d); } static object[] DivideCases = { new object[] { 12, 3, 4 }, new object[] { 12, 2, 6 }, new object[] { 12, 4, 3 } }; } Explanation In the sample above, DivideCases is a field, and as such does not accept any arguments, so the TestCaseSource should not supply any parameters. Fix Either remove the parameter from TestCaseSource or change the field into a method.: public class MyTestClass { [TestCaseSource(nameof(DivideCases), new object[] { \"Testing\" })] public void DivideTest(int n, int d, int q) { Assert.AreEqual(q, n / d); } static object[] DivideCases(string input) { return new object[] { new object[] { 12, 3, 4 }, new object[] { 12, 2, 6 }, new object[] { 12, 4, 3 } }; } } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit1020: The TestCaseSource provides parameters to a source - field or property - that expects no parameters dotnet_diagnostic.NUnit1020.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit1020 // The TestCaseSource provides parameters to a source - field or property - that expects no parameters Code violating the rule here #pragma warning restore NUnit1020 // The TestCaseSource provides parameters to a source - field or property - that expects no parameters Or put this at the top of the file to disable all instances. #pragma warning disable NUnit1020 // The TestCaseSource provides parameters to a source - field or property - that expects no parameters Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Structure\", \"NUnit1020:The TestCaseSource provides parameters to a source - field or property - that expects no parameters\", Justification = \"Reason...\")]" + "keywords": "NUnit1020 The TestCaseSource provides parameters to a source - field or property - that expects no parameters Topic Value Id NUnit1020 Severity Error Enabled True Category Structure Code TestCaseSourceUsesStringAnalyzer Description The TestCaseSource must not provide any parameters when the source is a field or a property. Motivation To prevent tests that will fail at runtime due to improper construction. How to fix violations Example Violation public class MyTestClass { [TestCaseSource(nameof(DivideCases), new object[] { \"Testing\" })] public void DivideTest(int n, int d, int q) { ClassicAssert.AreEqual(q, n / d); } static object[] DivideCases = { new object[] { 12, 3, 4 }, new object[] { 12, 2, 6 }, new object[] { 12, 4, 3 } }; } Explanation In the sample above, DivideCases is a field, and as such does not accept any arguments, so the TestCaseSource should not supply any parameters. Fix Either remove the parameter from TestCaseSource or change the field into a method.: public class MyTestClass { [TestCaseSource(nameof(DivideCases), new object[] { \"Testing\" })] public void DivideTest(int n, int d, int q) { ClassicAssert.AreEqual(q, n / d); } static object[] DivideCases(string input) { return new object[] { new object[] { 12, 3, 4 }, new object[] { 12, 2, 6 }, new object[] { 12, 4, 3 } }; } } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit1020: The TestCaseSource provides parameters to a source - field or property - that expects no parameters dotnet_diagnostic.NUnit1020.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit1020 // The TestCaseSource provides parameters to a source - field or property - that expects no parameters Code violating the rule here #pragma warning restore NUnit1020 // The TestCaseSource provides parameters to a source - field or property - that expects no parameters Or put this at the top of the file to disable all instances. #pragma warning disable NUnit1020 // The TestCaseSource provides parameters to a source - field or property - that expects no parameters Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Structure\", \"NUnit1020:The TestCaseSource provides parameters to a source - field or property - that expects no parameters\", Justification = \"Reason...\")]" }, "articles/nunit-analyzers/NUnit1021.html": { "href": "articles/nunit-analyzers/NUnit1021.html", @@ -1722,7 +1722,7 @@ "articles/nunit-analyzers/NUnit1022.html": { "href": "articles/nunit-analyzers/NUnit1022.html", "title": "NUnit1022 | NUnit Docs", - "keywords": "NUnit1022 The specified source is not static Topic Value Id NUnit1022 Severity Error Enabled True Category Structure Code ValueSourceUsageAnalyzer Description The specified source must be static. Motivation To prevent tests that will fail at runtime due to improper construction. How to fix violations Example Violation public class MyTestClass { [Test] public void DivideTest([ValueSource(nameof(Numbers))] int n) { Assert.AreEqual(n, Is.GreaterThanOrEqualTo(0)); } object[] Numbers => new int[] { 1, 2, 3 }; } Explanation In the sample above, Numbers is not a static property. However, sources specified by ValueSource must be static. Fix Make the source static: public class MyTestClass { [Test] public void DivideTest([ValueSource(nameof(Numbers))] int n) { Assert.AreEqual(n, Is.GreaterThanOrEqualTo(0)); } static object[] Numbers => new int[] { 1, 2, 3 }; } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit1022: The specified source is not static dotnet_diagnostic.NUnit1022.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit1022 // The specified source is not static Code violating the rule here #pragma warning restore NUnit1022 // The specified source is not static Or put this at the top of the file to disable all instances. #pragma warning disable NUnit1022 // The specified source is not static Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Structure\", \"NUnit1022:The specified source is not static\", Justification = \"Reason...\")]" + "keywords": "NUnit1022 The specified source is not static Topic Value Id NUnit1022 Severity Error Enabled True Category Structure Code ValueSourceUsageAnalyzer Description The specified source must be static. Motivation To prevent tests that will fail at runtime due to improper construction. How to fix violations Example Violation public class MyTestClass { [Test] public void DivideTest([ValueSource(nameof(Numbers))] int n) { ClassicAssert.AreEqual(n, Is.GreaterThanOrEqualTo(0)); } object[] Numbers => new int[] { 1, 2, 3 }; } Explanation In the sample above, Numbers is not a static property. However, sources specified by ValueSource must be static. Fix Make the source static: public class MyTestClass { [Test] public void DivideTest([ValueSource(nameof(Numbers))] int n) { ClassicAssert.AreEqual(n, Is.GreaterThanOrEqualTo(0)); } static object[] Numbers => new int[] { 1, 2, 3 }; } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit1022: The specified source is not static dotnet_diagnostic.NUnit1022.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit1022 // The specified source is not static Code violating the rule here #pragma warning restore NUnit1022 // The specified source is not static Or put this at the top of the file to disable all instances. #pragma warning disable NUnit1022 // The specified source is not static Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Structure\", \"NUnit1022:The specified source is not static\", Justification = \"Reason...\")]" }, "articles/nunit-analyzers/NUnit1023.html": { "href": "articles/nunit-analyzers/NUnit1023.html", @@ -1732,7 +1732,7 @@ "articles/nunit-analyzers/NUnit1024.html": { "href": "articles/nunit-analyzers/NUnit1024.html", "title": "NUnit1024 | NUnit Docs", - "keywords": "NUnit1024 The source specified by the ValueSource does not return an IEnumerable or a type that implements IEnumerable Topic Value Id NUnit1024 Severity Error Enabled True Category Structure Code ValueSourceUsageAnalyzer Description The source specified by the ValueSource must return an IEnumerable or a type that implements IEnumerable. Motivation To prevent tests that will fail at runtime due to improper construction. How to fix violations Example Violation public class AnalyzeWhenSourceDoesProvideIEnumerable { private static readonly int testCases = 42; [Test] public void Test([ValueSource(nameof(testCases))] int input) { } } Explanation In the sample above, the source specified by ValueSource - the field testCases - does not return an IEnumerable or a type that implements IEnumerable, instead it returns an int. However, sources specified by ValueSource must return an IEnumerable or a type that implements IEnumerable.. Fix Change testCases to return an IEnumerable or a type that implements IEnumerable: public class AnalyzeWhenSourceDoesProvideIEnumerable { private static readonly int[] testCases = new int[] { 1, 2, 42 }; [Test] public void Test([ValueSource(nameof(testCases))] int input) { } } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit1024: The source specified by the ValueSource does not return an IEnumerable or a type that implements IEnumerable dotnet_diagnostic.NUnit1024.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit1024 // The source specified by the ValueSource does not return an IEnumerable or a type that implements IEnumerable Code violating the rule here #pragma warning restore NUnit1024 // The source specified by the ValueSource does not return an IEnumerable or a type that implements IEnumerable Or put this at the top of the file to disable all instances. #pragma warning disable NUnit1024 // The source specified by the ValueSource does not return an IEnumerable or a type that implements IEnumerable Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Structure\", \"NUnit1024:The source specified by the ValueSource does not return an IEnumerable or a type that implements IEnumerable\", Justification = \"Reason...\")]" + "keywords": "NUnit1024 The source specified by the ValueSource does not return an I(Async)Enumerable or a type that implements I(Async)Enumerable Topic Value Id NUnit1024 Severity Error Enabled True Category Structure Code ValueSourceUsageAnalyzer Description The source specified by the ValueSource must return an I(Async)Enumerable or a type that implements I(Async)Enumerable. Motivation To prevent tests that will fail at runtime due to improper construction. How to fix violations Example Violation public class AnalyzeWhenSourceDoesProvideIEnumerable { private static readonly int testCases = 42; [Test] public void Test([ValueSource(nameof(testCases))] int input) { } } Explanation In the sample above, the source specified by ValueSource - the field testCases - does not return an I(Async)Enumerable or a type that implements I(Async)Enumerable, instead it returns an int. However, sources specified by ValueSource must return an I(Async)Enumerable or a type that implements I(Async)Enumerable.. Fix Change testCases to return an I(Async)Enumerable or a type that implements I(Async)Enumerable: public class AnalyzeWhenSourceDoesProvideIEnumerable { private static readonly int[] testCases = new int[] { 1, 2, 42 }; [Test] public void Test([ValueSource(nameof(testCases))] int input) { } } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit1024: The source specified by the ValueSource does not return an I(Async)Enumerable or a type that implements I(Async)Enumerable dotnet_diagnostic.NUnit1024.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit1024 // The source specified by the ValueSource does not return an I(Async)Enumerable or a type that implements I(Async)Enumerable Code violating the rule here #pragma warning restore NUnit1024 // The source specified by the ValueSource does not return an I(Async)Enumerable or a type that implements I(Async)Enumerable Or put this at the top of the file to disable all instances. #pragma warning disable NUnit1024 // The source specified by the ValueSource does not return an I(Async)Enumerable or a type that implements I(Async)Enumerable Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Structure\", \"NUnit1024:The source specified by the ValueSource does not return an I(Async)Enumerable or a type that implements I(Async)Enumerable\", Justification = \"Reason...\")]" }, "articles/nunit-analyzers/NUnit1025.html": { "href": "articles/nunit-analyzers/NUnit1025.html", @@ -1777,37 +1777,37 @@ "articles/nunit-analyzers/NUnit2001.html": { "href": "articles/nunit-analyzers/NUnit2001.html", "title": "NUnit2001 | NUnit Docs", - "keywords": "NUnit2001 Consider using Assert.That(expr, Is.False) instead of Assert.False(expr) Topic Value Id NUnit2001 Severity Info Enabled True Category Assertion Code ClassicModelAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(expr, Is.False), instead of the classic model, Assert.False(expr). Motivation The classic Assert model contains less flexibility than the constraint model, so this analyzer marks usages of Assert.False from the classic Assert model. [Test] public void Test() { Assert.False(expression); } How to fix violations The analyzer comes with a code fix that will replace Assert.False(expression) with Assert.That(expression, Is.False). So the code block above will be changed into. [Test] public void Test() { Assert.That(expression, Is.False); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2001: Consider using Assert.That(expr, Is.False) instead of Assert.False(expr) dotnet_diagnostic.NUnit2001.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2001 // Consider using Assert.That(expr, Is.False) instead of Assert.False(expr) Code violating the rule here #pragma warning restore NUnit2001 // Consider using Assert.That(expr, Is.False) instead of Assert.False(expr) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2001 // Consider using Assert.That(expr, Is.False) instead of Assert.False(expr) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2001:Consider using Assert.That(expr, Is.False) instead of Assert.False(expr)\", Justification = \"Reason...\")]" + "keywords": "NUnit2001 Consider using Assert.That(expr, Is.False) instead of ClassicAssert.False(expr) Topic Value Id NUnit2001 Severity Info Enabled True Category Assertion Code ClassicModelAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(expr, Is.False), instead of the classic model, ClassicAssert.False(expr). Motivation The classic Assert model contains less flexibility than the constraint model, so this analyzer marks usages of ClassicAssert.False from the classic Assert model. [Test] public void Test() { ClassicAssert.False(expression); } How to fix violations The analyzer comes with a code fix that will replace ClassicAssert.False(expression) with Assert.That(expression, Is.False). So the code block above will be changed into. [Test] public void Test() { Assert.That(expression, Is.False); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2001: Consider using Assert.That(expr, Is.False) instead of ClassicAssert.False(expr) dotnet_diagnostic.NUnit2001.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2001 // Consider using Assert.That(expr, Is.False) instead of ClassicAssert.False(expr) Code violating the rule here #pragma warning restore NUnit2001 // Consider using Assert.That(expr, Is.False) instead of ClassicAssert.False(expr) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2001 // Consider using Assert.That(expr, Is.False) instead of ClassicAssert.False(expr) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2001:Consider using Assert.That(expr, Is.False) instead of ClassicAssert.False(expr)\", Justification = \"Reason...\")]" }, "articles/nunit-analyzers/NUnit2002.html": { "href": "articles/nunit-analyzers/NUnit2002.html", "title": "NUnit2002 | NUnit Docs", - "keywords": "NUnit2002 Consider using Assert.That(expr, Is.False) instead of Assert.IsFalse(expr) Topic Value Id NUnit2002 Severity Info Enabled True Category Assertion Code ClassicModelAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(expr, Is.False), instead of the classic model, Assert.IsFalse(expr). Motivation The classic Assert model contains less flexibility than the constraint model, so this analyzer marks usages of Assert.IsFalse from the classic Assert model. [Test] public void Test() { Assert.IsFalse(expression); } How to fix violations The analyzer comes with a code fix that will replace Assert.IsFalse(expression) with Assert.That(expression, Is.False). So the code block above will be changed into. [Test] public void Test() { Assert.That(expression, Is.False); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2002: Consider using Assert.That(expr, Is.False) instead of Assert.IsFalse(expr) dotnet_diagnostic.NUnit2002.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2002 // Consider using Assert.That(expr, Is.False) instead of Assert.IsFalse(expr) Code violating the rule here #pragma warning restore NUnit2002 // Consider using Assert.That(expr, Is.False) instead of Assert.IsFalse(expr) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2002 // Consider using Assert.That(expr, Is.False) instead of Assert.IsFalse(expr) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2002:Consider using Assert.That(expr, Is.False) instead of Assert.IsFalse(expr)\", Justification = \"Reason...\")]" + "keywords": "NUnit2002 Consider using Assert.That(expr, Is.False) instead of ClassicAssert.IsFalse(expr) Topic Value Id NUnit2002 Severity Info Enabled True Category Assertion Code ClassicModelAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(expr, Is.False), instead of the classic model, ClassicAssert.IsFalse(expr). Motivation The classic Assert model contains less flexibility than the constraint model, so this analyzer marks usages of ClassicAssert.IsFalse from the classic Assert model. [Test] public void Test() { ClassicAssert.IsFalse(expression); } How to fix violations The analyzer comes with a code fix that will replace ClassicAssert.IsFalse(expression) with Assert.That(expression, Is.False). So the code block above will be changed into. [Test] public void Test() { Assert.That(expression, Is.False); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2002: Consider using Assert.That(expr, Is.False) instead of ClassicAssert.IsFalse(expr) dotnet_diagnostic.NUnit2002.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2002 // Consider using Assert.That(expr, Is.False) instead of ClassicAssert.IsFalse(expr) Code violating the rule here #pragma warning restore NUnit2002 // Consider using Assert.That(expr, Is.False) instead of ClassicAssert.IsFalse(expr) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2002 // Consider using Assert.That(expr, Is.False) instead of ClassicAssert.IsFalse(expr) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2002:Consider using Assert.That(expr, Is.False) instead of ClassicAssert.IsFalse(expr)\", Justification = \"Reason...\")]" }, "articles/nunit-analyzers/NUnit2003.html": { "href": "articles/nunit-analyzers/NUnit2003.html", "title": "NUnit2003 | NUnit Docs", - "keywords": "NUnit2003 Consider using Assert.That(expr, Is.True) instead of Assert.IsTrue(expr) Topic Value Id NUnit2003 Severity Info Enabled True Category Assertion Code ClassicModelAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(expr, Is.True), instead of the classic model, Assert.IsTrue(expr). Motivation The classic Assert model contains less flexibility than the constraint model, so this analyzer marks usages of Assert.IsTrue from the classic Assert model. [Test] public void Test() { Assert.IsTrue(expression); } How to fix violations The analyzer comes with a code fix that will replace Assert.IsTrue(expression) with Assert.That(expression, Is.True). So the code block above will be changed into. [Test] public void Test() { Assert.That(expression, Is.True); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2003: Consider using Assert.That(expr, Is.True) instead of Assert.IsTrue(expr) dotnet_diagnostic.NUnit2003.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2003 // Consider using Assert.That(expr, Is.True) instead of Assert.IsTrue(expr) Code violating the rule here #pragma warning restore NUnit2003 // Consider using Assert.That(expr, Is.True) instead of Assert.IsTrue(expr) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2003 // Consider using Assert.That(expr, Is.True) instead of Assert.IsTrue(expr) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2003:Consider using Assert.That(expr, Is.True) instead of Assert.IsTrue(expr)\", Justification = \"Reason...\")]" + "keywords": "NUnit2003 Consider using Assert.That(expr, Is.True) instead of ClassicAssert.IsTrue(expr) Topic Value Id NUnit2003 Severity Info Enabled True Category Assertion Code ClassicModelAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(expr, Is.True), instead of the classic model, ClassicAssert.IsTrue(expr). Motivation The classic Assert model contains less flexibility than the constraint model, so this analyzer marks usages of ClassicAssert.IsTrue from the classic Assert model. [Test] public void Test() { ClassicAssert.IsTrue(expression); } How to fix violations The analyzer comes with a code fix that will replace ClassicAssert.IsTrue(expression) with Assert.That(expression, Is.True). So the code block above will be changed into. [Test] public void Test() { Assert.That(expression, Is.True); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2003: Consider using Assert.That(expr, Is.True) instead of ClassicAssert.IsTrue(expr) dotnet_diagnostic.NUnit2003.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2003 // Consider using Assert.That(expr, Is.True) instead of ClassicAssert.IsTrue(expr) Code violating the rule here #pragma warning restore NUnit2003 // Consider using Assert.That(expr, Is.True) instead of ClassicAssert.IsTrue(expr) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2003 // Consider using Assert.That(expr, Is.True) instead of ClassicAssert.IsTrue(expr) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2003:Consider using Assert.That(expr, Is.True) instead of ClassicAssert.IsTrue(expr)\", Justification = \"Reason...\")]" }, "articles/nunit-analyzers/NUnit2004.html": { "href": "articles/nunit-analyzers/NUnit2004.html", "title": "NUnit2004 | NUnit Docs", - "keywords": "NUnit2004 Consider using Assert.That(expr, Is.True) instead of Assert.True(expr) Topic Value Id NUnit2004 Severity Info Enabled True Category Assertion Code ClassicModelAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(expr, Is.True), instead of the classic model, Assert.True(expr). Motivation The classic Assert model contains less flexibility than the constraint model, so this analyzer marks usages of Assert.True from the classic Assert model. [Test] public void Test() { Assert.True(expression); } How to fix violations The analyzer comes with a code fix that will replace Assert.True(expression) with Assert.That(expression, Is.True). So the code block above will be changed into. [Test] public void Test() { Assert.That(expression, Is.True); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2004: Consider using Assert.That(expr, Is.True) instead of Assert.True(expr) dotnet_diagnostic.NUnit2004.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2004 // Consider using Assert.That(expr, Is.True) instead of Assert.True(expr) Code violating the rule here #pragma warning restore NUnit2004 // Consider using Assert.That(expr, Is.True) instead of Assert.True(expr) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2004 // Consider using Assert.That(expr, Is.True) instead of Assert.True(expr) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2004:Consider using Assert.That(expr, Is.True) instead of Assert.True(expr)\", Justification = \"Reason...\")]" + "keywords": "NUnit2004 Consider using Assert.That(expr, Is.True) instead of ClassicAssert.True(expr) Topic Value Id NUnit2004 Severity Info Enabled True Category Assertion Code ClassicModelAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(expr, Is.True), instead of the classic model, ClassicAssert.True(expr). Motivation The classic Assert model contains less flexibility than the constraint model, so this analyzer marks usages of ClassicAssert.True from the classic Assert model. [Test] public void Test() { ClassicAssert.True(expression); } How to fix violations The analyzer comes with a code fix that will replace ClassicAssert.True(expression) with Assert.That(expression, Is.True). So the code block above will be changed into. [Test] public void Test() { Assert.That(expression, Is.True); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2004: Consider using Assert.That(expr, Is.True) instead of ClassicAssert.True(expr) dotnet_diagnostic.NUnit2004.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2004 // Consider using Assert.That(expr, Is.True) instead of ClassicAssert.True(expr) Code violating the rule here #pragma warning restore NUnit2004 // Consider using Assert.That(expr, Is.True) instead of ClassicAssert.True(expr) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2004 // Consider using Assert.That(expr, Is.True) instead of ClassicAssert.True(expr) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2004:Consider using Assert.That(expr, Is.True) instead of ClassicAssert.True(expr)\", Justification = \"Reason...\")]" }, "articles/nunit-analyzers/NUnit2005.html": { "href": "articles/nunit-analyzers/NUnit2005.html", "title": "NUnit2005 | NUnit Docs", - "keywords": "NUnit2005 Consider using Assert.That(actual, Is.EqualTo(expected)) instead of Assert.AreEqual(expected, actual) Topic Value Id NUnit2005 Severity Warning Enabled True Category Assertion Code ClassicModelAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(actual, Is.EqualTo(expected)), instead of the classic model, Assert.AreEqual(expected, actual). Motivation The classic Assert model, Assert.AreEqual(expected, actual), makes it easy to mix the expected and the actual parameter, so this analyzer marks usages of Assert.AreEqual from the classic Assert model. [Test] public void Test() { Assert.AreEqual(expression1, expression2); } How to fix violations The analyzer comes with a code fix that will replace Assert.AreEqual(expression1, expression2) with Assert.That(expression2, Is.EqualTo(expression1)). So the code block above will be changed into. [Test] public void Test() { Assert.That(expression2, Is.EqualTo(expression1)); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2005: Consider using Assert.That(actual, Is.EqualTo(expected)) instead of Assert.AreEqual(expected, actual) dotnet_diagnostic.NUnit2005.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2005 // Consider using Assert.That(actual, Is.EqualTo(expected)) instead of Assert.AreEqual(expected, actual) Code violating the rule here #pragma warning restore NUnit2005 // Consider using Assert.That(actual, Is.EqualTo(expected)) instead of Assert.AreEqual(expected, actual) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2005 // Consider using Assert.That(actual, Is.EqualTo(expected)) instead of Assert.AreEqual(expected, actual) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2005:Consider using Assert.That(actual, Is.EqualTo(expected)) instead of Assert.AreEqual(expected, actual)\", Justification = \"Reason...\")]" + "keywords": "NUnit2005 Consider using Assert.That(actual, Is.EqualTo(expected)) instead of ClassicAssert.AreEqual(expected, actual) Topic Value Id NUnit2005 Severity Warning Enabled True Category Assertion Code ClassicModelAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(actual, Is.EqualTo(expected)), instead of the classic model, ClassicAssert.AreEqual(expected, actual). Motivation The classic Assert model, ClassicAssert.AreEqual(expected, actual), makes it easy to mix the expected and the actual parameter, so this analyzer marks usages of ClassicAssert.AreEqual from the classic Assert model. [Test] public void Test() { ClassicAssert.AreEqual(expression1, expression2); } How to fix violations The analyzer comes with a code fix that will replace ClassicAssert.AreEqual(expression1, expression2) with Assert.That(expression2, Is.EqualTo(expression1)). So the code block above will be changed into. [Test] public void Test() { Assert.That(expression2, Is.EqualTo(expression1)); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2005: Consider using Assert.That(actual, Is.EqualTo(expected)) instead of ClassicAssert.AreEqual(expected, actual) dotnet_diagnostic.NUnit2005.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2005 // Consider using Assert.That(actual, Is.EqualTo(expected)) instead of ClassicAssert.AreEqual(expected, actual) Code violating the rule here #pragma warning restore NUnit2005 // Consider using Assert.That(actual, Is.EqualTo(expected)) instead of ClassicAssert.AreEqual(expected, actual) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2005 // Consider using Assert.That(actual, Is.EqualTo(expected)) instead of ClassicAssert.AreEqual(expected, actual) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2005:Consider using Assert.That(actual, Is.EqualTo(expected)) instead of ClassicAssert.AreEqual(expected, actual)\", Justification = \"Reason...\")]" }, "articles/nunit-analyzers/NUnit2006.html": { "href": "articles/nunit-analyzers/NUnit2006.html", "title": "NUnit2006 | NUnit Docs", - "keywords": "NUnit2006 Consider using Assert.That(actual, Is.Not.EqualTo(expected)) instead of Assert.AreNotEqual(expected, actual) Topic Value Id NUnit2006 Severity Warning Enabled True Category Assertion Code ClassicModelAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(actual, Is.Not.EqualTo(expected)), instead of the classic model, Assert.AreNotEqual(expected, actual). Motivation The classic Assert model, Assert.AreNotEqual(expected, actual), makes it easy to mix the expected and the actual parameter, so this analyzer marks usages of Assert.AreNotEqual from the classic Assert model. [Test] public void Test() { Assert.AreNotEqual(expression1, expression2) } How to fix violations The analyzer comes with a code fix that will replace Assert.AreNotEqual(expression1, expression2) with Assert.That(expression2, Is.Not.EqualTo(expression1)). So the code block above will be changed into. [Test] public void Test() { Assert.That(expression2, Is.Not.EqualTo(expression1)); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2006: Consider using Assert.That(actual, Is.Not.EqualTo(expected)) instead of Assert.AreNotEqual(expected, actual) dotnet_diagnostic.NUnit2006.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2006 // Consider using Assert.That(actual, Is.Not.EqualTo(expected)) instead of Assert.AreNotEqual(expected, actual) Code violating the rule here #pragma warning restore NUnit2006 // Consider using Assert.That(actual, Is.Not.EqualTo(expected)) instead of Assert.AreNotEqual(expected, actual) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2006 // Consider using Assert.That(actual, Is.Not.EqualTo(expected)) instead of Assert.AreNotEqual(expected, actual) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2006:Consider using Assert.That(actual, Is.Not.EqualTo(expected)) instead of Assert.AreNotEqual(expected, actual)\", Justification = \"Reason...\")]" + "keywords": "NUnit2006 Consider using Assert.That(actual, Is.Not.EqualTo(expected)) instead of ClassicAssert.AreNotEqual(expected, actual) Topic Value Id NUnit2006 Severity Warning Enabled True Category Assertion Code ClassicModelAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(actual, Is.Not.EqualTo(expected)), instead of the classic model, ClassicAssert.AreNotEqual(expected, actual). Motivation The classic Assert model, ClassicAssert.AreNotEqual(expected, actual), makes it easy to mix the expected and the actual parameter, so this analyzer marks usages of ClassicAssert.AreNotEqual from the classic Assert model. [Test] public void Test() { ClassicAssert.AreNotEqual(expression1, expression2) } How to fix violations The analyzer comes with a code fix that will replace ClassicAssert.AreNotEqual(expression1, expression2) with Assert.That(expression2, Is.Not.EqualTo(expression1)). So the code block above will be changed into. [Test] public void Test() { Assert.That(expression2, Is.Not.EqualTo(expression1)); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2006: Consider using Assert.That(actual, Is.Not.EqualTo(expected)) instead of ClassicAssert.AreNotEqual(expected, actual) dotnet_diagnostic.NUnit2006.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2006 // Consider using Assert.That(actual, Is.Not.EqualTo(expected)) instead of ClassicAssert.AreNotEqual(expected, actual) Code violating the rule here #pragma warning restore NUnit2006 // Consider using Assert.That(actual, Is.Not.EqualTo(expected)) instead of ClassicAssert.AreNotEqual(expected, actual) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2006 // Consider using Assert.That(actual, Is.Not.EqualTo(expected)) instead of ClassicAssert.AreNotEqual(expected, actual) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2006:Consider using Assert.That(actual, Is.Not.EqualTo(expected)) instead of ClassicAssert.AreNotEqual(expected, actual)\", Justification = \"Reason...\")]" }, "articles/nunit-analyzers/NUnit2007.html": { "href": "articles/nunit-analyzers/NUnit2007.html", "title": "NUnit2007 | NUnit Docs", - "keywords": "NUnit2007 The actual value should not be a constant Topic Value Id NUnit2007 Severity Warning Enabled True Category Assertion Code ConstActualValueUsageAnalyzer Description The actual value should not be a constant. This indicates that the actual value and the expected value have switched places. Motivation Bring developers' attention to a scenario in which their test is most likely testing the wrong thing, or to cases where their actual and expected values may be accidentally swapped. How to fix violations Example Violation [Test] public void NUnit2007SampleTest() { var x = 5; Assert.That(5, Is.EqualTo(x)); Assert.AreEqual(x, 5); } Explanation Both asserts above will trigger this warning. That's because the actual value should be the value produced by your code, not a constant value that you're expecting (which should be in the place of the expected value). In the case of equality, etc. this might seem like no big deal, but it really comes into play in the exceptions that are raised by error messages. It's important that if your test fails, the message can correctly tell you what the expected and actual values are. As an aside, this is another reason why the Assert.That syntax is often preferred when asserting equality. Fix Flip the actual and expected values so that your expected value is the constant and your actual value has been generated by code. [Test] public void NUnit2007SampleTest() { var x = 5; Assert.That(x, Is.EqualTo(5)); Assert.AreEqual(5, x); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2007: The actual value should not be a constant dotnet_diagnostic.NUnit2007.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2007 // The actual value should not be a constant Code violating the rule here #pragma warning restore NUnit2007 // The actual value should not be a constant Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2007 // The actual value should not be a constant Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2007:The actual value should not be a constant\", Justification = \"Reason...\")]" + "keywords": "NUnit2007 The actual value should not be a constant Topic Value Id NUnit2007 Severity Warning Enabled True Category Assertion Code ConstActualValueUsageAnalyzer Description The actual value should not be a constant. This indicates that the actual value and the expected value have switched places. Motivation Bring developers' attention to a scenario in which their test is most likely testing the wrong thing, or to cases where their actual and expected values may be accidentally swapped. How to fix violations Example Violation [Test] public void NUnit2007SampleTest() { var x = 5; Assert.That(5, Is.EqualTo(x)); ClassicAssert.AreEqual(x, 5); } Explanation Both asserts above will trigger this warning. That's because the actual value should be the value produced by your code, not a constant value that you're expecting (which should be in the place of the expected value). In the case of equality, etc. this might seem like no big deal, but it really comes into play in the exceptions that are raised by error messages. It's important that if your test fails, the message can correctly tell you what the expected and actual values are. As an aside, this is another reason why the Assert.That syntax is often preferred when asserting equality. Fix Flip the actual and expected values so that your expected value is the constant and your actual value has been generated by code. [Test] public void NUnit2007SampleTest() { var x = 5; Assert.That(x, Is.EqualTo(5)); ClassicAssert.AreEqual(5, x); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2007: The actual value should not be a constant dotnet_diagnostic.NUnit2007.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2007 // The actual value should not be a constant Code violating the rule here #pragma warning restore NUnit2007 // The actual value should not be a constant Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2007 // The actual value should not be a constant Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2007:The actual value should not be a constant\", Justification = \"Reason...\")]" }, "articles/nunit-analyzers/NUnit2008.html": { "href": "articles/nunit-analyzers/NUnit2008.html", @@ -1822,52 +1822,52 @@ "articles/nunit-analyzers/NUnit2010.html": { "href": "articles/nunit-analyzers/NUnit2010.html", "title": "NUnit2010 | NUnit Docs", - "keywords": "NUnit2010 Use EqualConstraint for better assertion messages in case of failure Topic Value Id NUnit2010 Severity Info Enabled True Category Assertion Code EqualConstraintUsageAnalyzer Description Using EqualConstraint will lead to better assertion messages in case of failure. Motivation Using Is.EqualTo (or Is.Not.EqualTo) constraint will lead to better assertion messages in case of failure, so this analyzer marks all usages of == operator and Equals method where it is possible to replace with Is.EqualTo constraint. [Test] public void Test() { Assert.True(actual == expected); } How to fix violations The analyzer comes with a code fix that will replace Assert.True(actual == expected) with Assert.That(actual, Is.EqualTo(expected)). So the code block above will be changed into [Test] public void Test() { Assert.That(actual, Is.EqualTo(expected)); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2010: Use EqualConstraint for better assertion messages in case of failure dotnet_diagnostic.NUnit2010.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2010 // Use EqualConstraint for better assertion messages in case of failure Code violating the rule here #pragma warning restore NUnit2010 // Use EqualConstraint for better assertion messages in case of failure Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2010 // Use EqualConstraint for better assertion messages in case of failure Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2010:Use EqualConstraint for better assertion messages in case of failure\", Justification = \"Reason...\")]" + "keywords": "NUnit2010 Use EqualConstraint for better assertion messages in case of failure Topic Value Id NUnit2010 Severity Info Enabled True Category Assertion Code EqualConstraintUsageAnalyzer Description Using EqualConstraint will lead to better assertion messages in case of failure. Motivation Using Is.EqualTo (or Is.Not.EqualTo) constraint will lead to better assertion messages in case of failure, so this analyzer marks all usages of == operator and Equals method where it is possible to replace with Is.EqualTo constraint. [Test] public void Test() { ClassicAssert.True(actual == expected); } How to fix violations The analyzer comes with a code fix that will replace ClassicAssert.True(actual == expected) with Assert.That(actual, Is.EqualTo(expected)). So the code block above will be changed into [Test] public void Test() { Assert.That(actual, Is.EqualTo(expected)); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2010: Use EqualConstraint for better assertion messages in case of failure dotnet_diagnostic.NUnit2010.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2010 // Use EqualConstraint for better assertion messages in case of failure Code violating the rule here #pragma warning restore NUnit2010 // Use EqualConstraint for better assertion messages in case of failure Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2010 // Use EqualConstraint for better assertion messages in case of failure Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2010:Use EqualConstraint for better assertion messages in case of failure\", Justification = \"Reason...\")]" }, "articles/nunit-analyzers/NUnit2011.html": { "href": "articles/nunit-analyzers/NUnit2011.html", "title": "NUnit2011 | NUnit Docs", - "keywords": "NUnit2011 Use ContainsConstraint for better assertion messages in case of failure Topic Value Id NUnit2011 Severity Info Enabled True Category Assertion Code StringConstraintUsageAnalyzer Description Using constraints instead of boolean methods will lead to better assertion messages in case of failure. Motivation Using Does.Contain (or Does.Not.Contain) constraint will lead to better assertion messages in case of failure, so this analyzer marks all usages of string Contains method where it is possible to replace with Does.Contain constraint. [Test] public void Test() { string actual = \"...\"; string expected = \"...\"; Assert.True(actual.Contains(expected)); } How to fix violations The analyzer comes with a code fix that will replace Assert.True(actual.Contains(expected)) with Assert.That(actual, Does.Contain(expected)). So the code block above will be changed into [Test] public void Test() { string actual = \"...\"; string expected = \"...\"; Assert.That(actual, Does.Contain(expected)); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2011: Use ContainsConstraint for better assertion messages in case of failure dotnet_diagnostic.NUnit2011.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2011 // Use ContainsConstraint for better assertion messages in case of failure Code violating the rule here #pragma warning restore NUnit2011 // Use ContainsConstraint for better assertion messages in case of failure Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2011 // Use ContainsConstraint for better assertion messages in case of failure Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2011:Use ContainsConstraint for better assertion messages in case of failure\", Justification = \"Reason...\")]" + "keywords": "NUnit2011 Use ContainsConstraint for better assertion messages in case of failure Topic Value Id NUnit2011 Severity Info Enabled True Category Assertion Code StringConstraintUsageAnalyzer Description Using constraints instead of boolean methods will lead to better assertion messages in case of failure. Motivation Using Does.Contain (or Does.Not.Contain) constraint will lead to better assertion messages in case of failure, so this analyzer marks all usages of string Contains method where it is possible to replace with Does.Contain constraint. [Test] public void Test() { string actual = \"...\"; string expected = \"...\"; ClassicAssert.True(actual.Contains(expected)); } How to fix violations The analyzer comes with a code fix that will replace ClassicAssert.True(actual.Contains(expected)) with Assert.That(actual, Does.Contain(expected)). So the code block above will be changed into [Test] public void Test() { string actual = \"...\"; string expected = \"...\"; Assert.That(actual, Does.Contain(expected)); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2011: Use ContainsConstraint for better assertion messages in case of failure dotnet_diagnostic.NUnit2011.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2011 // Use ContainsConstraint for better assertion messages in case of failure Code violating the rule here #pragma warning restore NUnit2011 // Use ContainsConstraint for better assertion messages in case of failure Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2011 // Use ContainsConstraint for better assertion messages in case of failure Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2011:Use ContainsConstraint for better assertion messages in case of failure\", Justification = \"Reason...\")]" }, "articles/nunit-analyzers/NUnit2012.html": { "href": "articles/nunit-analyzers/NUnit2012.html", "title": "NUnit2012 | NUnit Docs", - "keywords": "NUnit2012 Use StartsWithConstraint for better assertion messages in case of failure Topic Value Id NUnit2012 Severity Info Enabled True Category Assertion Code StringConstraintUsageAnalyzer Description Using constraints instead of boolean methods will lead to better assertion messages in case of failure. Motivation Using Does.StartWith (or Does.Not.StartWith) constraint will lead to better assertion messages in case of failure, so this analyzer marks all usages of string StartsWith method where it is possible to replace with Does.StartWith constraint. [Test] public void Test() { string actual = \"...\"; string expected = \"...\"; Assert.True(actual.StartsWith(expected)); } How to fix violations The analyzer comes with a code fix that will replace Assert.True(actual.StartWith(expected)) with Assert.That(actual, Does.StartWith(expected)). So the code block above will be changed into [Test] public void Test() { string actual = \"...\"; string expected = \"...\"; Assert.That(actual, Does.StartWith(expected)); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2012: Use StartsWithConstraint for better assertion messages in case of failure dotnet_diagnostic.NUnit2012.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2012 // Use StartsWithConstraint for better assertion messages in case of failure Code violating the rule here #pragma warning restore NUnit2012 // Use StartsWithConstraint for better assertion messages in case of failure Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2012 // Use StartsWithConstraint for better assertion messages in case of failure Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2012:Use StartsWithConstraint for better assertion messages in case of failure\", Justification = \"Reason...\")]" + "keywords": "NUnit2012 Use StartsWithConstraint for better assertion messages in case of failure Topic Value Id NUnit2012 Severity Info Enabled True Category Assertion Code StringConstraintUsageAnalyzer Description Using constraints instead of boolean methods will lead to better assertion messages in case of failure. Motivation Using Does.StartWith (or Does.Not.StartWith) constraint will lead to better assertion messages in case of failure, so this analyzer marks all usages of string StartsWith method where it is possible to replace with Does.StartWith constraint. [Test] public void Test() { string actual = \"...\"; string expected = \"...\"; ClassicAssert.True(actual.StartsWith(expected)); } How to fix violations The analyzer comes with a code fix that will replace ClassicAssert.True(actual.StartWith(expected)) with Assert.That(actual, Does.StartWith(expected)). So the code block above will be changed into [Test] public void Test() { string actual = \"...\"; string expected = \"...\"; Assert.That(actual, Does.StartWith(expected)); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2012: Use StartsWithConstraint for better assertion messages in case of failure dotnet_diagnostic.NUnit2012.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2012 // Use StartsWithConstraint for better assertion messages in case of failure Code violating the rule here #pragma warning restore NUnit2012 // Use StartsWithConstraint for better assertion messages in case of failure Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2012 // Use StartsWithConstraint for better assertion messages in case of failure Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2012:Use StartsWithConstraint for better assertion messages in case of failure\", Justification = \"Reason...\")]" }, "articles/nunit-analyzers/NUnit2013.html": { "href": "articles/nunit-analyzers/NUnit2013.html", "title": "NUnit2013 | NUnit Docs", - "keywords": "NUnit2013 Use EndsWithConstraint for better assertion messages in case of failure Topic Value Id NUnit2013 Severity Info Enabled True Category Assertion Code StringConstraintUsageAnalyzer Description Using constraints instead of boolean methods will lead to better assertion messages in case of failure. Motivation Using Does.EndWith (or Does.Not.EndWith) constraint will lead to better assertion messages in case of failure, so this analyzer marks all usages of string EndsWith method where it is possible to replace with Does.EndWith constraint. [Test] public void Test() { string actual = \"...\"; string expected = \"...\"; Assert.True(actual.EndsWith(expected)); } How to fix violations The analyzer comes with a code fix that will replace Assert.True(actual.EndsWith(expected)) with Assert.That(actual, Does.EndWith(expected)). So the code block above will be changed into [Test] public void Test() { string actual = \"...\"; string expected = \"...\"; Assert.That(actual, Does.EndWith(expected)); } ## Configure severity ### Via ruleset file Configure the severity per project, for more info see [MSDN](https://learn.microsoft.com/en-us/visualstudio/code-quality/using-rule-sets-to-group-code-analysis-rules?view=vs-2022). ### Via .editorconfig file ```ini # NUnit2013: Use EndsWithConstraint for better assertion messages in case of failure dotnet_diagnostic.NUnit2013.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2013 // Use EndsWithConstraint for better assertion messages in case of failure Code violating the rule here #pragma warning restore NUnit2013 // Use EndsWithConstraint for better assertion messages in case of failure Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2013 // Use EndsWithConstraint for better assertion messages in case of failure Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2013:Use EndsWithConstraint for better assertion messages in case of failure\", Justification = \"Reason...\")]" + "keywords": "NUnit2013 Use EndsWithConstraint for better assertion messages in case of failure Topic Value Id NUnit2013 Severity Info Enabled True Category Assertion Code StringConstraintUsageAnalyzer Description Using constraints instead of boolean methods will lead to better assertion messages in case of failure. Motivation Using Does.EndWith (or Does.Not.EndWith) constraint will lead to better assertion messages in case of failure, so this analyzer marks all usages of string EndsWith method where it is possible to replace with Does.EndWith constraint. [Test] public void Test() { string actual = \"...\"; string expected = \"...\"; ClassicAssert.True(actual.EndsWith(expected)); } How to fix violations The analyzer comes with a code fix that will replace ClassicAssert.True(actual.EndsWith(expected)) with Assert.That(actual, Does.EndWith(expected)). So the code block above will be changed into [Test] public void Test() { string actual = \"...\"; string expected = \"...\"; Assert.That(actual, Does.EndWith(expected)); } ## Configure severity ### Via ruleset file Configure the severity per project, for more info see [MSDN](https://learn.microsoft.com/en-us/visualstudio/code-quality/using-rule-sets-to-group-code-analysis-rules?view=vs-2022). ### Via .editorconfig file ```ini # NUnit2013: Use EndsWithConstraint for better assertion messages in case of failure dotnet_diagnostic.NUnit2013.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2013 // Use EndsWithConstraint for better assertion messages in case of failure Code violating the rule here #pragma warning restore NUnit2013 // Use EndsWithConstraint for better assertion messages in case of failure Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2013 // Use EndsWithConstraint for better assertion messages in case of failure Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2013:Use EndsWithConstraint for better assertion messages in case of failure\", Justification = \"Reason...\")]" }, "articles/nunit-analyzers/NUnit2014.html": { "href": "articles/nunit-analyzers/NUnit2014.html", "title": "NUnit2014 | NUnit Docs", - "keywords": "NUnit2014 Use SomeItemsConstraint for better assertion messages in case of failure Topic Value Id NUnit2014 Severity Info Enabled True Category Assertion Code SomeItemsConstraintUsageAnalyzer Description Using SomeItemsConstraint will lead to better assertion messages in case of failure. Motivation Using Does.Contain (or Does.Not.Contain) constraint will lead to better assertion messages in case of failure, so this analyzer marks all usages of string Contains method where it is possible to replace with Does.Contain constraint. [Test] public void Test() { var actual = new List {1,2,3}; int expected = 1; Assert.True(actual.Contains(expected)); } How to fix violations The analyzer comes with a code fix that will replace Assert.True(actual.Contains(expected)) with Assert.That(actual, Does.Contain(expected)). So the code block above will be changed into [Test] public void Test() { var actual = new List {1,2,3}; int expected = 1; Assert.That(actual, Does.Contain(expected)); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2014: Use SomeItemsConstraint for better assertion messages in case of failure dotnet_diagnostic.NUnit2014.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2014 // Use SomeItemsConstraint for better assertion messages in case of failure Code violating the rule here #pragma warning restore NUnit2014 // Use SomeItemsConstraint for better assertion messages in case of failure Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2014 // Use SomeItemsConstraint for better assertion messages in case of failure Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2014:Use SomeItemsConstraint for better assertion messages in case of failure\", Justification = \"Reason...\")]" + "keywords": "NUnit2014 Use SomeItemsConstraint for better assertion messages in case of failure Topic Value Id NUnit2014 Severity Info Enabled True Category Assertion Code SomeItemsConstraintUsageAnalyzer Description Using SomeItemsConstraint will lead to better assertion messages in case of failure. Motivation Using Does.Contain (or Does.Not.Contain) constraint will lead to better assertion messages in case of failure, so this analyzer marks all usages of string Contains method where it is possible to replace with Does.Contain constraint. [Test] public void Test() { var actual = new List {1,2,3}; int expected = 1; ClassicAssert.True(actual.Contains(expected)); } How to fix violations The analyzer comes with a code fix that will replace ClassicAssert.True(actual.Contains(expected)) with Assert.That(actual, Does.Contain(expected)). So the code block above will be changed into [Test] public void Test() { var actual = new List {1,2,3}; int expected = 1; Assert.That(actual, Does.Contain(expected)); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2014: Use SomeItemsConstraint for better assertion messages in case of failure dotnet_diagnostic.NUnit2014.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2014 // Use SomeItemsConstraint for better assertion messages in case of failure Code violating the rule here #pragma warning restore NUnit2014 // Use SomeItemsConstraint for better assertion messages in case of failure Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2014 // Use SomeItemsConstraint for better assertion messages in case of failure Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2014:Use SomeItemsConstraint for better assertion messages in case of failure\", Justification = \"Reason...\")]" }, "articles/nunit-analyzers/NUnit2015.html": { "href": "articles/nunit-analyzers/NUnit2015.html", "title": "NUnit2015 | NUnit Docs", - "keywords": "NUnit2015 Consider using Assert.That(actual, Is.SameAs(expected)) instead of Assert.AreSame(expected, actual) Topic Value Id NUnit2015 Severity Warning Enabled True Category Assertion Code ClassicModelAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(actual, Is.SameAs(expected)), instead of the classic model, Assert.AreSame(expected, actual). Motivation The assert Assert.AreSame from the classic Assert model makes it easy to confuse the expected and the actual argument, so this analyzer marks usages of Assert.AreSame. [Test] public void Test() { Assert.AreSame(expected, actual); } How to fix violations The analyzer comes with a code fix that will replace Assert.AreSame(expected, actual) with Assert.That(actual, Is.SameAs(expected)). So the code block above will be changed into. [Test] public void Test() { Assert.That(actual, Is.SameAs(expected)); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2015: Consider using Assert.That(actual, Is.SameAs(expected)) instead of Assert.AreSame(expected, actual) dotnet_diagnostic.NUnit2015.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2015 // Consider using Assert.That(actual, Is.SameAs(expected)) instead of Assert.AreSame(expected, actual) Code violating the rule here #pragma warning restore NUnit2015 // Consider using Assert.That(actual, Is.SameAs(expected)) instead of Assert.AreSame(expected, actual) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2015 // Consider using Assert.That(actual, Is.SameAs(expected)) instead of Assert.AreSame(expected, actual) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2015:Consider using Assert.That(actual, Is.SameAs(expected)) instead of Assert.AreSame(expected, actual)\", Justification = \"Reason...\")]" + "keywords": "NUnit2015 Consider using Assert.That(actual, Is.SameAs(expected)) instead of ClassicAssert.AreSame(expected, actual) Topic Value Id NUnit2015 Severity Warning Enabled True Category Assertion Code ClassicModelAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(actual, Is.SameAs(expected)), instead of the classic model, ClassicAssert.AreSame(expected, actual). Motivation The assert ClassicAssert.AreSame from the classic Assert model makes it easy to confuse the expected and the actual argument, so this analyzer marks usages of ClassicAssert.AreSame. [Test] public void Test() { ClassicAssert.AreSame(expected, actual); } How to fix violations The analyzer comes with a code fix that will replace ClassicAssert.AreSame(expected, actual) with Assert.That(actual, Is.SameAs(expected)). So the code block above will be changed into. [Test] public void Test() { Assert.That(actual, Is.SameAs(expected)); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2015: Consider using Assert.That(actual, Is.SameAs(expected)) instead of ClassicAssert.AreSame(expected, actual) dotnet_diagnostic.NUnit2015.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2015 // Consider using Assert.That(actual, Is.SameAs(expected)) instead of ClassicAssert.AreSame(expected, actual) Code violating the rule here #pragma warning restore NUnit2015 // Consider using Assert.That(actual, Is.SameAs(expected)) instead of ClassicAssert.AreSame(expected, actual) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2015 // Consider using Assert.That(actual, Is.SameAs(expected)) instead of ClassicAssert.AreSame(expected, actual) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2015:Consider using Assert.That(actual, Is.SameAs(expected)) instead of ClassicAssert.AreSame(expected, actual)\", Justification = \"Reason...\")]" }, "articles/nunit-analyzers/NUnit2016.html": { "href": "articles/nunit-analyzers/NUnit2016.html", "title": "NUnit2016 | NUnit Docs", - "keywords": "NUnit2016 Consider using Assert.That(expr, Is.Null) instead of Assert.Null(expr) Topic Value Id NUnit2016 Severity Info Enabled True Category Assertion Code ClassicModelAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(expr, Is.Null), instead of the classic model, Assert.Null(expr). Motivation The classic Assert model contains less flexibility than the constraint model, so this analyzer marks usages of Assert.Null from the classic Assert model. [Test] public void Test() { object obj = null; Assert.Null(obj); } How to fix violations The analyzer comes with a code fix that will replace Assert.Null(expression) with Assert.That(expression, Is.Null). So the code block above will be changed into. [Test] public void Test() { object obj = null; Assert.That(obj, Is.Null); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2016: Consider using Assert.That(expr, Is.Null) instead of Assert.Null(expr) dotnet_diagnostic.NUnit2016.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2016 // Consider using Assert.That(expr, Is.Null) instead of Assert.Null(expr) Code violating the rule here #pragma warning restore NUnit2016 // Consider using Assert.That(expr, Is.Null) instead of Assert.Null(expr) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2016 // Consider using Assert.That(expr, Is.Null) instead of Assert.Null(expr) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2016:Consider using Assert.That(expr, Is.Null) instead of Assert.Null(expr)\", Justification = \"Reason...\")]" + "keywords": "NUnit2016 Consider using Assert.That(expr, Is.Null) instead of ClassicAssert.Null(expr) Topic Value Id NUnit2016 Severity Info Enabled True Category Assertion Code ClassicModelAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(expr, Is.Null), instead of the classic model, ClassicAssert.Null(expr). Motivation The classic Assert model contains less flexibility than the constraint model, so this analyzer marks usages of ClassicAssert.Null from the classic Assert model. [Test] public void Test() { object obj = null; ClassicAssert.Null(obj); } How to fix violations The analyzer comes with a code fix that will replace ClassicAssert.Null(expression) with Assert.That(expression, Is.Null). So the code block above will be changed into. [Test] public void Test() { object obj = null; Assert.That(obj, Is.Null); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2016: Consider using Assert.That(expr, Is.Null) instead of ClassicAssert.Null(expr) dotnet_diagnostic.NUnit2016.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2016 // Consider using Assert.That(expr, Is.Null) instead of ClassicAssert.Null(expr) Code violating the rule here #pragma warning restore NUnit2016 // Consider using Assert.That(expr, Is.Null) instead of ClassicAssert.Null(expr) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2016 // Consider using Assert.That(expr, Is.Null) instead of ClassicAssert.Null(expr) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2016:Consider using Assert.That(expr, Is.Null) instead of ClassicAssert.Null(expr)\", Justification = \"Reason...\")]" }, "articles/nunit-analyzers/NUnit2017.html": { "href": "articles/nunit-analyzers/NUnit2017.html", "title": "NUnit2017 | NUnit Docs", - "keywords": "NUnit2017 Consider using Assert.That(expr, Is.Null) instead of Assert.IsNull(expr) Topic Value Id NUnit2017 Severity Info Enabled True Category Assertion Code ClassicModelAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(expr, Is.Null), instead of the classic model, Assert.IsNull(expr). Motivation The classic Assert model contains less flexibility than the constraint model, so this analyzer marks usages of Assert.IsNull from the classic Assert model. [Test] public void Test() { object obj = null; Assert.IsNull(obj); } How to fix violations The analyzer comes with a code fix that will replace Assert.IsNull(expression) with Assert.That(expression, Is.Null). So the code block above will be changed into. [Test] public void Test() { object obj = null; Assert.That(obj, Is.Null); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2017: Consider using Assert.That(expr, Is.Null) instead of Assert.IsNull(expr) dotnet_diagnostic.NUnit2017.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2017 // Consider using Assert.That(expr, Is.Null) instead of Assert.IsNull(expr) Code violating the rule here #pragma warning restore NUnit2017 // Consider using Assert.That(expr, Is.Null) instead of Assert.IsNull(expr) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2017 // Consider using Assert.That(expr, Is.Null) instead of Assert.IsNull(expr) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2017:Consider using Assert.That(expr, Is.Null) instead of Assert.IsNull(expr)\", Justification = \"Reason...\")]" + "keywords": "NUnit2017 Consider using Assert.That(expr, Is.Null) instead of ClassicAssert.IsNull(expr) Topic Value Id NUnit2017 Severity Info Enabled True Category Assertion Code ClassicModelAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(expr, Is.Null), instead of the classic model, ClassicAssert.IsNull(expr). Motivation The classic Assert model contains less flexibility than the constraint model, so this analyzer marks usages of ClassicAssert.IsNull from the classic Assert model. [Test] public void Test() { object obj = null; ClassicAssert.IsNull(obj); } How to fix violations The analyzer comes with a code fix that will replace ClassicAssert.IsNull(expression) with Assert.That(expression, Is.Null). So the code block above will be changed into. [Test] public void Test() { object obj = null; Assert.That(obj, Is.Null); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2017: Consider using Assert.That(expr, Is.Null) instead of ClassicAssert.IsNull(expr) dotnet_diagnostic.NUnit2017.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2017 // Consider using Assert.That(expr, Is.Null) instead of ClassicAssert.IsNull(expr) Code violating the rule here #pragma warning restore NUnit2017 // Consider using Assert.That(expr, Is.Null) instead of ClassicAssert.IsNull(expr) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2017 // Consider using Assert.That(expr, Is.Null) instead of ClassicAssert.IsNull(expr) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2017:Consider using Assert.That(expr, Is.Null) instead of ClassicAssert.IsNull(expr)\", Justification = \"Reason...\")]" }, "articles/nunit-analyzers/NUnit2018.html": { "href": "articles/nunit-analyzers/NUnit2018.html", "title": "NUnit2018 | NUnit Docs", - "keywords": "NUnit2018 Consider using Assert.That(expr, Is.Not.Null) instead of Assert.NotNull(expr) Topic Value Id NUnit2018 Severity Info Enabled True Category Assertion Code ClassicModelAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(expr, Is.Not.Null), instead of the classic model, Assert.NotNull(expr). Motivation The classic Assert model contains less flexibility than the constraint model, so this analyzer marks usages of Assert.NotNull from the classic Assert model. [Test] public void Test() { object obj = null; Assert.NotNull(obj); } How to fix violations The analyzer comes with a code fix that will replace Assert.NotNull(expression) with Assert.That(expression, Is.Not.Null). So the code block above will be changed into. [Test] public void Test() { object obj = null; Assert.That(obj, Is.Not.Null); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2018: Consider using Assert.That(expr, Is.Not.Null) instead of Assert.NotNull(expr) dotnet_diagnostic.NUnit2018.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2018 // Consider using Assert.That(expr, Is.Not.Null) instead of Assert.NotNull(expr) Code violating the rule here #pragma warning restore NUnit2018 // Consider using Assert.That(expr, Is.Not.Null) instead of Assert.NotNull(expr) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2018 // Consider using Assert.That(expr, Is.Not.Null) instead of Assert.NotNull(expr) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2018:Consider using Assert.That(expr, Is.Not.Null) instead of Assert.NotNull(expr)\", Justification = \"Reason...\")]" + "keywords": "NUnit2018 Consider using Assert.That(expr, Is.Not.Null) instead of ClassicAssert.NotNull(expr) Topic Value Id NUnit2018 Severity Info Enabled True Category Assertion Code ClassicModelAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(expr, Is.Not.Null), instead of the classic model, ClassicAssert.NotNull(expr). Motivation The classic Assert model contains less flexibility than the constraint model, so this analyzer marks usages of ClassicAssert.NotNull from the classic Assert model. [Test] public void Test() { object obj = null; ClassicAssert.NotNull(obj); } How to fix violations The analyzer comes with a code fix that will replace ClassicAssert.NotNull(expression) with Assert.That(expression, Is.Not.Null). So the code block above will be changed into. [Test] public void Test() { object obj = null; Assert.That(obj, Is.Not.Null); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2018: Consider using Assert.That(expr, Is.Not.Null) instead of ClassicAssert.NotNull(expr) dotnet_diagnostic.NUnit2018.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2018 // Consider using Assert.That(expr, Is.Not.Null) instead of ClassicAssert.NotNull(expr) Code violating the rule here #pragma warning restore NUnit2018 // Consider using Assert.That(expr, Is.Not.Null) instead of ClassicAssert.NotNull(expr) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2018 // Consider using Assert.That(expr, Is.Not.Null) instead of ClassicAssert.NotNull(expr) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2018:Consider using Assert.That(expr, Is.Not.Null) instead of ClassicAssert.NotNull(expr)\", Justification = \"Reason...\")]" }, "articles/nunit-analyzers/NUnit2019.html": { "href": "articles/nunit-analyzers/NUnit2019.html", "title": "NUnit2019 | NUnit Docs", - "keywords": "NUnit2019 Consider using Assert.That(expr, Is.Not.Null) instead of Assert.IsNotNull(expr) Topic Value Id NUnit2019 Severity Info Enabled True Category Assertion Code ClassicModelAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(expr, Is.Not.Null), instead of the classic model, Assert.IsNotNull(expr). Motivation The classic Assert model contains less flexibility than the constraint model, so this analyzer marks usages of Assert.IsNotNull from the classic Assert model. [Test] public void Test() { object obj = null; Assert.IsNotNull(obj); } How to fix violations The analyzer comes with a code fix that will replace Assert.IsNotNull(expression) with Assert.That(expression, Is.Not.Null). So the code block above will be changed into. [Test] public void Test() { object obj = null; Assert.That(obj, Is.Not.Null); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2019: Consider using Assert.That(expr, Is.Not.Null) instead of Assert.IsNotNull(expr) dotnet_diagnostic.NUnit2019.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2019 // Consider using Assert.That(expr, Is.Not.Null) instead of Assert.IsNotNull(expr) Code violating the rule here #pragma warning restore NUnit2019 // Consider using Assert.That(expr, Is.Not.Null) instead of Assert.IsNotNull(expr) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2019 // Consider using Assert.That(expr, Is.Not.Null) instead of Assert.IsNotNull(expr) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2019:Consider using Assert.That(expr, Is.Not.Null) instead of Assert.IsNotNull(expr)\", Justification = \"Reason...\")]" + "keywords": "NUnit2019 Consider using Assert.That(expr, Is.Not.Null) instead of ClassicAssert.IsNotNull(expr) Topic Value Id NUnit2019 Severity Info Enabled True Category Assertion Code ClassicModelAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(expr, Is.Not.Null), instead of the classic model, ClassicAssert.IsNotNull(expr). Motivation The classic Assert model contains less flexibility than the constraint model, so this analyzer marks usages of ClassicAssert.IsNotNull from the classic Assert model. [Test] public void Test() { object obj = null; ClassicAssert.IsNotNull(obj); } How to fix violations The analyzer comes with a code fix that will replace ClassicAssert.IsNotNull(expression) with Assert.That(expression, Is.Not.Null). So the code block above will be changed into. [Test] public void Test() { object obj = null; Assert.That(obj, Is.Not.Null); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2019: Consider using Assert.That(expr, Is.Not.Null) instead of ClassicAssert.IsNotNull(expr) dotnet_diagnostic.NUnit2019.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2019 // Consider using Assert.That(expr, Is.Not.Null) instead of ClassicAssert.IsNotNull(expr) Code violating the rule here #pragma warning restore NUnit2019 // Consider using Assert.That(expr, Is.Not.Null) instead of ClassicAssert.IsNotNull(expr) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2019 // Consider using Assert.That(expr, Is.Not.Null) instead of ClassicAssert.IsNotNull(expr) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2019:Consider using Assert.That(expr, Is.Not.Null) instead of ClassicAssert.IsNotNull(expr)\", Justification = \"Reason...\")]" }, "articles/nunit-analyzers/NUnit2020.html": { "href": "articles/nunit-analyzers/NUnit2020.html", @@ -1897,7 +1897,7 @@ "articles/nunit-analyzers/NUnit2025.html": { "href": "articles/nunit-analyzers/NUnit2025.html", "title": "NUnit2025 | NUnit Docs", - "keywords": "NUnit2025 Wrong actual type used with ContainsConstraint Topic Value Id NUnit2025 Severity Error Enabled True Category Assertion Code ContainsConstraintWrongActualTypeAnalyzer Description The ContainsConstraint requires the type of the actual value to be either a string or a collection of strings. Motivation Using a ContainsConstraint with an actual argument, which is neither a string nor a collection of strings, leads to an assertion error. How to fix violations Fix the actual value or use appropriate constraint. Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2025: Wrong actual type used with ContainsConstraint dotnet_diagnostic.NUnit2025.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2025 // Wrong actual type used with ContainsConstraint Code violating the rule here #pragma warning restore NUnit2025 // Wrong actual type used with ContainsConstraint Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2025 // Wrong actual type used with ContainsConstraint Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2025:Wrong actual type used with ContainsConstraint\", Justification = \"Reason...\")]" + "keywords": "NUnit2025 Wrong actual type used with ContainsConstraint Topic Value Id NUnit2025 Severity Hidden Enabled False Category Assertion Code ContainsConstraintWrongActualTypeAnalyzer Description The ContainsConstraint requires the type of the actual value to be either a string or a collection of strings. Motivation Using a ContainsConstraint with an actual argument, which is neither a string nor a collection of strings, leads to an assertion error. How to fix violations Fix the actual value or use appropriate constraint. Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2025: Wrong actual type used with ContainsConstraint dotnet_diagnostic.NUnit2025.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2025 // Wrong actual type used with ContainsConstraint Code violating the rule here #pragma warning restore NUnit2025 // Wrong actual type used with ContainsConstraint Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2025 // Wrong actual type used with ContainsConstraint Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2025:Wrong actual type used with ContainsConstraint\", Justification = \"Reason...\")]" }, "articles/nunit-analyzers/NUnit2026.html": { "href": "articles/nunit-analyzers/NUnit2026.html", @@ -1907,67 +1907,67 @@ "articles/nunit-analyzers/NUnit2027.html": { "href": "articles/nunit-analyzers/NUnit2027.html", "title": "NUnit2027 | NUnit Docs", - "keywords": "NUnit2027 Consider using Assert.That(actual, Is.GreaterThan(expected)) instead of Assert.Greater(actual, expected) Topic Value Id NUnit2027 Severity Info Enabled True Category Assertion Code ClassicModelAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(actual, Is.GreaterThan(expected)), instead of the classic model, Assert.Greater(actual, expected). Motivation The assert Assert.Greater from the classic Assert model makes it easy to confuse the expected and the actual argument, so this analyzer marks usages of Assert.Greater. [Test] public void Test() { Assert.Greater(actual, expected); } How to fix violations The analyzer comes with a code fix that will replace Assert.Greater(actual, expected) with Assert.That(actual, Is.GreaterThan(expected)). So the code block above will be changed into. [Test] public void Test() { Assert.That(actual, Is.GreaterThan(expected)); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2027: Consider using Assert.That(actual, Is.GreaterThan(expected)) instead of Assert.Greater(actual, expected) dotnet_diagnostic.NUnit2027.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2027 // Consider using Assert.That(actual, Is.GreaterThan(expected)) instead of Assert.Greater(actual, expected) Code violating the rule here #pragma warning restore NUnit2027 // Consider using Assert.That(actual, Is.GreaterThan(expected)) instead of Assert.Greater(actual, expected) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2027 // Consider using Assert.That(actual, Is.GreaterThan(expected)) instead of Assert.Greater(actual, expected) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2027:Consider using Assert.That(actual, Is.GreaterThan(expected)) instead of Assert.Greater(actual, expected)\", Justification = \"Reason...\")]" + "keywords": "NUnit2027 Consider using Assert.That(actual, Is.GreaterThan(expected)) instead of ClassicAssert.Greater(actual, expected) Topic Value Id NUnit2027 Severity Info Enabled True Category Assertion Code ClassicModelAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(actual, Is.GreaterThan(expected)), instead of the classic model, ClassicAssert.Greater(actual, expected). Motivation The assert ClassicAssert.Greater from the classic Assert model makes it easy to confuse the expected and the actual argument, so this analyzer marks usages of ClassicAssert.Greater. [Test] public void Test() { ClassicAssert.Greater(actual, expected); } How to fix violations The analyzer comes with a code fix that will replace ClassicAssert.Greater(actual, expected) with Assert.That(actual, Is.GreaterThan(expected)). So the code block above will be changed into. [Test] public void Test() { Assert.That(actual, Is.GreaterThan(expected)); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2027: Consider using Assert.That(actual, Is.GreaterThan(expected)) instead of ClassicAssert.Greater(actual, expected) dotnet_diagnostic.NUnit2027.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2027 // Consider using Assert.That(actual, Is.GreaterThan(expected)) instead of ClassicAssert.Greater(actual, expected) Code violating the rule here #pragma warning restore NUnit2027 // Consider using Assert.That(actual, Is.GreaterThan(expected)) instead of ClassicAssert.Greater(actual, expected) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2027 // Consider using Assert.That(actual, Is.GreaterThan(expected)) instead of ClassicAssert.Greater(actual, expected) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2027:Consider using Assert.That(actual, Is.GreaterThan(expected)) instead of ClassicAssert.Greater(actual, expected)\", Justification = \"Reason...\")]" }, "articles/nunit-analyzers/NUnit2028.html": { "href": "articles/nunit-analyzers/NUnit2028.html", "title": "NUnit2028 | NUnit Docs", - "keywords": "NUnit2028 Consider using Assert.That(actual, Is.GreaterThanOrEqualTo(expected)) instead of Assert.GreaterOrEqual(actual, expected) Topic Value Id NUnit2028 Severity Info Enabled True Category Assertion Code ClassicModelAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(actual, Is.GreaterThanOrEqualTo(expected)), instead of the classic model, Assert.GreaterOrEqual(actual, expected). Motivation The assert Assert.GreaterOrEqual from the classic Assert model makes it easy to confuse the expected and the actual argument, so this analyzer marks usages of Assert.GreaterOrEqual. [Test] public void Test() { Assert.GreaterOrEqual(actual, expected); } How to fix violations The analyzer comes with a code fix that will replace Assert.GreaterOrEqual(actual, expected) with Assert.That(actual, Is.GreaterThanOrEqualTo(expected)). So the code block above will be changed into. [Test] public void Test() { Assert.That(actual, Is.GreaterThanOrEqualTo(expected)); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2028: Consider using Assert.That(actual, Is.GreaterThanOrEqualTo(expected)) instead of Assert.GreaterOrEqual(actual, expected) dotnet_diagnostic.NUnit2028.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2028 // Consider using Assert.That(actual, Is.GreaterThanOrEqualTo(expected)) instead of Assert.GreaterOrEqual(actual, expected) Code violating the rule here #pragma warning restore NUnit2028 // Consider using Assert.That(actual, Is.GreaterThanOrEqualTo(expected)) instead of Assert.GreaterOrEqual(actual, expected) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2028 // Consider using Assert.That(actual, Is.GreaterThanOrEqualTo(expected)) instead of Assert.GreaterOrEqual(actual, expected) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2028:Consider using Assert.That(actual, Is.GreaterThanOrEqualTo(expected)) instead of Assert.GreaterOrEqual(actual, expected)\", Justification = \"Reason...\")]" + "keywords": "NUnit2028 Consider using Assert.That(actual, Is.GreaterThanOrEqualTo(expected)) instead of ClassicAssert.GreaterOrEqual(actual, expected) Topic Value Id NUnit2028 Severity Info Enabled True Category Assertion Code ClassicModelAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(actual, Is.GreaterThanOrEqualTo(expected)), instead of the classic model, ClassicAssert.GreaterOrEqual(actual, expected). Motivation The assert ClassicAssert.GreaterOrEqual from the classic Assert model makes it easy to confuse the expected and the actual argument, so this analyzer marks usages of ClassicAssert.GreaterOrEqual. [Test] public void Test() { ClassicAssert.GreaterOrEqual(actual, expected); } How to fix violations The analyzer comes with a code fix that will replace ClassicAssert.GreaterOrEqual(actual, expected) with Assert.That(actual, Is.GreaterThanOrEqualTo(expected)). So the code block above will be changed into. [Test] public void Test() { Assert.That(actual, Is.GreaterThanOrEqualTo(expected)); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2028: Consider using Assert.That(actual, Is.GreaterThanOrEqualTo(expected)) instead of ClassicAssert.GreaterOrEqual(actual, expected) dotnet_diagnostic.NUnit2028.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2028 // Consider using Assert.That(actual, Is.GreaterThanOrEqualTo(expected)) instead of ClassicAssert.GreaterOrEqual(actual, expected) Code violating the rule here #pragma warning restore NUnit2028 // Consider using Assert.That(actual, Is.GreaterThanOrEqualTo(expected)) instead of ClassicAssert.GreaterOrEqual(actual, expected) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2028 // Consider using Assert.That(actual, Is.GreaterThanOrEqualTo(expected)) instead of ClassicAssert.GreaterOrEqual(actual, expected) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2028:Consider using Assert.That(actual, Is.GreaterThanOrEqualTo(expected)) instead of ClassicAssert.GreaterOrEqual(actual, expected)\", Justification = \"Reason...\")]" }, "articles/nunit-analyzers/NUnit2029.html": { "href": "articles/nunit-analyzers/NUnit2029.html", "title": "NUnit2029 | NUnit Docs", - "keywords": "NUnit2029 Consider using Assert.That(actual, Is.LessThan(expected)) instead of Assert.Less(actual, expected) Topic Value Id NUnit2029 Severity Info Enabled True Category Assertion Code ClassicModelAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(actual, Is.LessThan(expected)), instead of the classic model, Assert.Less(actual, expected). Motivation The assert Assert.Less from the classic Assert model makes it easy to confuse the expected and the actual argument, so this analyzer marks usages of Assert.Less. [Test] public void Test() { Assert.Less(actual, expected); } How to fix violations The analyzer comes with a code fix that will replace Assert.Less(actual, expected) with Assert.That(actual, Is.LessThan(expected)). So the code block above will be changed into. [Test] public void Test() { Assert.That(actual, Is.LessThan(expected)); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2029: Consider using Assert.That(actual, Is.LessThan(expected)) instead of Assert.Less(actual, expected) dotnet_diagnostic.NUnit2029.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2029 // Consider using Assert.That(actual, Is.LessThan(expected)) instead of Assert.Less(actual, expected) Code violating the rule here #pragma warning restore NUnit2029 // Consider using Assert.That(actual, Is.LessThan(expected)) instead of Assert.Less(actual, expected) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2029 // Consider using Assert.That(actual, Is.LessThan(expected)) instead of Assert.Less(actual, expected) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2029:Consider using Assert.That(actual, Is.LessThan(expected)) instead of Assert.Less(actual, expected)\", Justification = \"Reason...\")]" + "keywords": "NUnit2029 Consider using Assert.That(actual, Is.LessThan(expected)) instead of ClassicAssert.Less(actual, expected) Topic Value Id NUnit2029 Severity Info Enabled True Category Assertion Code ClassicModelAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(actual, Is.LessThan(expected)), instead of the classic model, ClassicAssert.Less(actual, expected). Motivation The assert ClassicAssert.Less from the classic Assert model makes it easy to confuse the expected and the actual argument, so this analyzer marks usages of ClassicAssert.Less. [Test] public void Test() { ClassicAssert.Less(actual, expected); } How to fix violations The analyzer comes with a code fix that will replace ClassicAssert.Less(actual, expected) with Assert.That(actual, Is.LessThan(expected)). So the code block above will be changed into. [Test] public void Test() { Assert.That(actual, Is.LessThan(expected)); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2029: Consider using Assert.That(actual, Is.LessThan(expected)) instead of ClassicAssert.Less(actual, expected) dotnet_diagnostic.NUnit2029.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2029 // Consider using Assert.That(actual, Is.LessThan(expected)) instead of ClassicAssert.Less(actual, expected) Code violating the rule here #pragma warning restore NUnit2029 // Consider using Assert.That(actual, Is.LessThan(expected)) instead of ClassicAssert.Less(actual, expected) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2029 // Consider using Assert.That(actual, Is.LessThan(expected)) instead of ClassicAssert.Less(actual, expected) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2029:Consider using Assert.That(actual, Is.LessThan(expected)) instead of ClassicAssert.Less(actual, expected)\", Justification = \"Reason...\")]" }, "articles/nunit-analyzers/NUnit2030.html": { "href": "articles/nunit-analyzers/NUnit2030.html", "title": "NUnit2030 | NUnit Docs", - "keywords": "NUnit2030 Consider using Assert.That(actual, Is.LessThanOrEqualTo(expected)) instead of Assert.LessOrEqual(actual, expected) Topic Value Id NUnit2030 Severity Info Enabled True Category Assertion Code ClassicModelAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(actual, Is.LessThanOrEqualTo(expected)), instead of the classic model, Assert.LessOrEqual(actual, expected). Motivation The assert Assert.LessOrEqual from the classic Assert model makes it easy to confuse the expected and the actual argument, so this analyzer marks usages of Assert.LessOrEqual. [Test] public void Test() { Assert.LessOrEqual(actual, expected); } How to fix violations The analyzer comes with a code fix that will replace Assert.LessOrEqual(actual, expected) with Assert.That(actual, Is.LessThanOrEqualTo(expected)). So the code block above will be changed into. [Test] public void Test() { Assert.That(actual, Is.SameAs(expected)); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2030: Consider using Assert.That(actual, Is.LessThanOrEqualTo(expected)) instead of Assert.LessOrEqual(actual, expected) dotnet_diagnostic.NUnit2030.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2030 // Consider using Assert.That(actual, Is.LessThanOrEqualTo(expected)) instead of Assert.LessOrEqual(actual, expected) Code violating the rule here #pragma warning restore NUnit2030 // Consider using Assert.That(actual, Is.LessThanOrEqualTo(expected)) instead of Assert.LessOrEqual(actual, expected) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2030 // Consider using Assert.That(actual, Is.LessThanOrEqualTo(expected)) instead of Assert.LessOrEqual(actual, expected) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2030:Consider using Assert.That(actual, Is.LessThanOrEqualTo(expected)) instead of Assert.LessOrEqual(actual, expected)\", Justification = \"Reason...\")]" + "keywords": "NUnit2030 Consider using Assert.That(actual, Is.LessThanOrEqualTo(expected)) instead of ClassicAssert.LessOrEqual(actual, expected) Topic Value Id NUnit2030 Severity Info Enabled True Category Assertion Code ClassicModelAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(actual, Is.LessThanOrEqualTo(expected)), instead of the classic model, ClassicAssert.LessOrEqual(actual, expected). Motivation The assert ClassicAssert.LessOrEqual from the classic Assert model makes it easy to confuse the expected and the actual argument, so this analyzer marks usages of ClassicAssert.LessOrEqual. [Test] public void Test() { ClassicAssert.LessOrEqual(actual, expected); } How to fix violations The analyzer comes with a code fix that will replace ClassicAssert.LessOrEqual(actual, expected) with Assert.That(actual, Is.LessThanOrEqualTo(expected)). So the code block above will be changed into. [Test] public void Test() { Assert.That(actual, Is.SameAs(expected)); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2030: Consider using Assert.That(actual, Is.LessThanOrEqualTo(expected)) instead of ClassicAssert.LessOrEqual(actual, expected) dotnet_diagnostic.NUnit2030.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2030 // Consider using Assert.That(actual, Is.LessThanOrEqualTo(expected)) instead of ClassicAssert.LessOrEqual(actual, expected) Code violating the rule here #pragma warning restore NUnit2030 // Consider using Assert.That(actual, Is.LessThanOrEqualTo(expected)) instead of ClassicAssert.LessOrEqual(actual, expected) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2030 // Consider using Assert.That(actual, Is.LessThanOrEqualTo(expected)) instead of ClassicAssert.LessOrEqual(actual, expected) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2030:Consider using Assert.That(actual, Is.LessThanOrEqualTo(expected)) instead of ClassicAssert.LessOrEqual(actual, expected)\", Justification = \"Reason...\")]" }, "articles/nunit-analyzers/NUnit2031.html": { "href": "articles/nunit-analyzers/NUnit2031.html", "title": "NUnit2031 | NUnit Docs", - "keywords": "NUnit2031 Consider using Assert.That(actual, Is.Not.SameAs(expected)) instead of Assert.AreNotSame(expected, actual) Topic Value Id NUnit2031 Severity Warning Enabled True Category Assertion Code ClassicModelAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(actual, Is.Not.SameAs(expected)), instead of the classic model, Assert.AreNotSame(expected, actual). Motivation The assert Assert.AreNotSame from the classic Assert model makes it easy to confuse the expected and the actual argument, so this analyzer marks usages of Assert.AreNotSame. [Test] public void Test() { Assert.AreNotSame(expected, actual); } How to fix violations The analyzer comes with a code fix that will replace Assert.AreNotSame(expected, actual) with Assert.That(actual, Is.Not.SameAs(expected)). So the code block above will be changed into. [Test] public void Test() { Assert.That(actual, Is.Not.SameAs(expected)); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2031: Consider using Assert.That(actual, Is.Not.SameAs(expected)) instead of Assert.AreNotSame(expected, actual) dotnet_diagnostic.NUnit2031.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2031 // Consider using Assert.That(actual, Is.Not.SameAs(expected)) instead of Assert.AreNotSame(expected, actual) Code violating the rule here #pragma warning restore NUnit2031 // Consider using Assert.That(actual, Is.Not.SameAs(expected)) instead of Assert.AreNotSame(expected, actual) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2031 // Consider using Assert.That(actual, Is.Not.SameAs(expected)) instead of Assert.AreNotSame(expected, actual) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2031:Consider using Assert.That(actual, Is.Not.SameAs(expected)) instead of Assert.AreNotSame(expected, actual)\", Justification = \"Reason...\")]" + "keywords": "NUnit2031 Consider using Assert.That(actual, Is.Not.SameAs(expected)) instead of ClassicAssert.AreNotSame(expected, actual) Topic Value Id NUnit2031 Severity Warning Enabled True Category Assertion Code ClassicModelAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(actual, Is.Not.SameAs(expected)), instead of the classic model, ClassicAssert.AreNotSame(expected, actual). Motivation The assert ClassicAssert.AreNotSame from the classic Assert model makes it easy to confuse the expected and the actual argument, so this analyzer marks usages of ClassicAssert.AreNotSame. [Test] public void Test() { ClassicAssert.AreNotSame(expected, actual); } How to fix violations The analyzer comes with a code fix that will replace ClassicAssert.AreNotSame(expected, actual) with Assert.That(actual, Is.Not.SameAs(expected)). So the code block above will be changed into. [Test] public void Test() { Assert.That(actual, Is.Not.SameAs(expected)); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2031: Consider using Assert.That(actual, Is.Not.SameAs(expected)) instead of ClassicAssert.AreNotSame(expected, actual) dotnet_diagnostic.NUnit2031.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2031 // Consider using Assert.That(actual, Is.Not.SameAs(expected)) instead of ClassicAssert.AreNotSame(expected, actual) Code violating the rule here #pragma warning restore NUnit2031 // Consider using Assert.That(actual, Is.Not.SameAs(expected)) instead of ClassicAssert.AreNotSame(expected, actual) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2031 // Consider using Assert.That(actual, Is.Not.SameAs(expected)) instead of ClassicAssert.AreNotSame(expected, actual) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2031:Consider using Assert.That(actual, Is.Not.SameAs(expected)) instead of ClassicAssert.AreNotSame(expected, actual)\", Justification = \"Reason...\")]" }, "articles/nunit-analyzers/NUnit2032.html": { "href": "articles/nunit-analyzers/NUnit2032.html", "title": "NUnit2032 | NUnit Docs", - "keywords": "NUnit2032 Consider using Assert.That(expr, Is.Zero) instead of Assert.Zero(expr) Topic Value Id NUnit2032 Severity Info Enabled True Category Assertion Code ClassicModelAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(expr, Is.Zero), instead of the classic model, Assert.Zero(expr). Motivation The classic Assert model contains less flexibility than the constraint model, so this analyzer marks usages of Assert.Zero from the classic Assert model. [Test] public void Test() { Assert.Zero(expression); } How to fix violations The analyzer comes with a code fix that will replace Assert.Zero(expression) with Assert.That(expression, Is.Zero). So the code block above will be changed into. [Test] public void Test() { Assert.That(expression, Is.Zero); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2032: Consider using Assert.That(expr, Is.Zero) instead of Assert.Zero(expr) dotnet_diagnostic.NUnit2032.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2032 // Consider using Assert.That(expr, Is.Zero) instead of Assert.Zero(expr) Code violating the rule here #pragma warning restore NUnit2032 // Consider using Assert.That(expr, Is.Zero) instead of Assert.Zero(expr) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2032 // Consider using Assert.That(expr, Is.Zero) instead of Assert.Zero(expr) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2032:Consider using Assert.That(expr, Is.Zero) instead of Assert.Zero(expr)\", Justification = \"Reason...\")]" + "keywords": "NUnit2032 Consider using Assert.That(expr, Is.Zero) instead of ClassicAssert.Zero(expr) Topic Value Id NUnit2032 Severity Info Enabled True Category Assertion Code ClassicModelAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(expr, Is.Zero), instead of the classic model, ClassicAssert.Zero(expr). Motivation The classic Assert model contains less flexibility than the constraint model, so this analyzer marks usages of ClassicAssert.Zero from the classic Assert model. [Test] public void Test() { ClassicAssert.Zero(expression); } How to fix violations The analyzer comes with a code fix that will replace ClassicAssert.Zero(expression) with Assert.That(expression, Is.Zero). So the code block above will be changed into. [Test] public void Test() { Assert.That(expression, Is.Zero); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2032: Consider using Assert.That(expr, Is.Zero) instead of ClassicAssert.Zero(expr) dotnet_diagnostic.NUnit2032.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2032 // Consider using Assert.That(expr, Is.Zero) instead of ClassicAssert.Zero(expr) Code violating the rule here #pragma warning restore NUnit2032 // Consider using Assert.That(expr, Is.Zero) instead of ClassicAssert.Zero(expr) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2032 // Consider using Assert.That(expr, Is.Zero) instead of ClassicAssert.Zero(expr) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2032:Consider using Assert.That(expr, Is.Zero) instead of ClassicAssert.Zero(expr)\", Justification = \"Reason...\")]" }, "articles/nunit-analyzers/NUnit2033.html": { "href": "articles/nunit-analyzers/NUnit2033.html", "title": "NUnit2033 | NUnit Docs", - "keywords": "NUnit2033 Consider using Assert.That(expr, Is.Not.Zero) instead of Assert.NotZero(expr) Topic Value Id NUnit2033 Severity Info Enabled True Category Assertion Code ClassicModelAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(expr, Is.Not.Zero), instead of the classic model, Assert.NotZero(expr). Motivation The classic Assert model contains less flexibility than the constraint model, so this analyzer marks usages of Assert.NotZero from the classic Assert model. [Test] public void Test() { Assert.NotZero(expression); } How to fix violations The analyzer comes with a code fix that will replace Assert.NotZero(expression) with Assert.That(expression, Is.Not.Zero). So the code block above will be changed into. [Test] public void Test() { Assert.That(expression, Is.Not.Zero); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2033: Consider using Assert.That(expr, Is.Not.Zero) instead of Assert.NotZero(expr) dotnet_diagnostic.NUnit2033.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2033 // Consider using Assert.That(expr, Is.Not.Zero) instead of Assert.NotZero(expr) Code violating the rule here #pragma warning restore NUnit2033 // Consider using Assert.That(expr, Is.Not.Zero) instead of Assert.NotZero(expr) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2033 // Consider using Assert.That(expr, Is.Not.Zero) instead of Assert.NotZero(expr) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2033:Consider using Assert.That(expr, Is.Not.Zero) instead of Assert.NotZero(expr)\", Justification = \"Reason...\")]" + "keywords": "NUnit2033 Consider using Assert.That(expr, Is.Not.Zero) instead of ClassicAssert.NotZero(expr) Topic Value Id NUnit2033 Severity Info Enabled True Category Assertion Code ClassicModelAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(expr, Is.Not.Zero), instead of the classic model, ClassicAssert.NotZero(expr). Motivation The classic Assert model contains less flexibility than the constraint model, so this analyzer marks usages of ClassicAssert.NotZero from the classic Assert model. [Test] public void Test() { ClassicAssert.NotZero(expression); } How to fix violations The analyzer comes with a code fix that will replace ClassicAssert.NotZero(expression) with Assert.That(expression, Is.Not.Zero). So the code block above will be changed into. [Test] public void Test() { Assert.That(expression, Is.Not.Zero); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2033: Consider using Assert.That(expr, Is.Not.Zero) instead of ClassicAssert.NotZero(expr) dotnet_diagnostic.NUnit2033.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2033 // Consider using Assert.That(expr, Is.Not.Zero) instead of ClassicAssert.NotZero(expr) Code violating the rule here #pragma warning restore NUnit2033 // Consider using Assert.That(expr, Is.Not.Zero) instead of ClassicAssert.NotZero(expr) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2033 // Consider using Assert.That(expr, Is.Not.Zero) instead of ClassicAssert.NotZero(expr) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2033:Consider using Assert.That(expr, Is.Not.Zero) instead of ClassicAssert.NotZero(expr)\", Justification = \"Reason...\")]" }, "articles/nunit-analyzers/NUnit2034.html": { "href": "articles/nunit-analyzers/NUnit2034.html", "title": "NUnit2034 | NUnit Docs", - "keywords": "NUnit2034 Consider using Assert.That(expr, Is.NaN) instead of Assert.IsNaN(expr) Topic Value Id NUnit2034 Severity Info Enabled True Category Assertion Code ClassicModelAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(expr, Is.NaN), instead of the classic model, Assert.IsNaN(expr). Motivation The classic Assert model contains less flexibility than the constraint model, so this analyzer marks usages of Assert.IsNaN from the classic Assert model. [Test] public void Test() { Assert.IsNaN(expression); } How to fix violations The analyzer comes with a code fix that will replace Assert.IsNaN(expression) with Assert.That(expression, Is.NaN). So the code block above will be changed into. [Test] public void Test() { Assert.That(expression, Is.NaN); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2034: Consider using Assert.That(expr, Is.NaN) instead of Assert.IsNaN(expr) dotnet_diagnostic.NUnit2034.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2034 // Consider using Assert.That(expr, Is.NaN) instead of Assert.IsNaN(expr) Code violating the rule here #pragma warning restore NUnit2034 // Consider using Assert.That(expr, Is.NaN) instead of Assert.IsNaN(expr) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2034 // Consider using Assert.That(expr, Is.NaN) instead of Assert.IsNaN(expr) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2034:Consider using Assert.That(expr, Is.NaN) instead of Assert.IsNaN(expr)\", Justification = \"Reason...\")]" + "keywords": "NUnit2034 Consider using Assert.That(expr, Is.NaN) instead of ClassicAssert.IsNaN(expr) Topic Value Id NUnit2034 Severity Info Enabled True Category Assertion Code ClassicModelAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(expr, Is.NaN), instead of the classic model, ClassicAssert.IsNaN(expr). Motivation The classic Assert model contains less flexibility than the constraint model, so this analyzer marks usages of ClassicAssert.IsNaN from the classic Assert model. [Test] public void Test() { ClassicAssert.IsNaN(expression); } How to fix violations The analyzer comes with a code fix that will replace ClassicAssert.IsNaN(expression) with Assert.That(expression, Is.NaN). So the code block above will be changed into. [Test] public void Test() { Assert.That(expression, Is.NaN); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2034: Consider using Assert.That(expr, Is.NaN) instead of ClassicAssert.IsNaN(expr) dotnet_diagnostic.NUnit2034.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2034 // Consider using Assert.That(expr, Is.NaN) instead of ClassicAssert.IsNaN(expr) Code violating the rule here #pragma warning restore NUnit2034 // Consider using Assert.That(expr, Is.NaN) instead of ClassicAssert.IsNaN(expr) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2034 // Consider using Assert.That(expr, Is.NaN) instead of ClassicAssert.IsNaN(expr) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2034:Consider using Assert.That(expr, Is.NaN) instead of ClassicAssert.IsNaN(expr)\", Justification = \"Reason...\")]" }, "articles/nunit-analyzers/NUnit2035.html": { "href": "articles/nunit-analyzers/NUnit2035.html", "title": "NUnit2035 | NUnit Docs", - "keywords": "NUnit2035 Consider using Assert.That(collection, Is.Empty) instead of Assert.IsEmpty(collection) Topic Value Id NUnit2035 Severity Info Enabled True Category Assertion Code ClassicModelAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(collection, Is.Empty), instead of the classic model, Assert.IsEmpty(collection). Motivation The classic Assert model contains less flexibility than the constraint model, so this analyzer marks usages of Assert.IsEmpty from the classic Assert model. [Test] public void Test() { Assert.IsEmpty(collection); } How to fix violations The analyzer comes with a code fix that will replace Assert.IsEmpty(collection) with Assert.That(collection, Is.Empty). So the code block above will be changed into. [Test] public void Test() { Assert.That(collection, Is.Empty); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2035: Consider using Assert.That(collection, Is.Empty) instead of Assert.IsEmpty(collection) dotnet_diagnostic.NUnit2035.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2035 // Consider using Assert.That(collection, Is.Empty) instead of Assert.IsEmpty(collection) Code violating the rule here #pragma warning restore NUnit2035 // Consider using Assert.That(collection, Is.Empty) instead of Assert.IsEmpty(collection) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2035 // Consider using Assert.That(collection, Is.Empty) instead of Assert.IsEmpty(collection) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2035:Consider using Assert.That(collection, Is.Empty) instead of Assert.IsEmpty(collection)\", Justification = \"Reason...\")]" + "keywords": "NUnit2035 Consider using Assert.That(collection, Is.Empty) instead of ClassicAssert.IsEmpty(collection) Topic Value Id NUnit2035 Severity Info Enabled True Category Assertion Code ClassicModelAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(collection, Is.Empty), instead of the classic model, ClassicAssert.IsEmpty(collection). Motivation The classic Assert model contains less flexibility than the constraint model, so this analyzer marks usages of ClassicAssert.IsEmpty from the classic Assert model. [Test] public void Test() { ClassicAssert.IsEmpty(collection); } How to fix violations The analyzer comes with a code fix that will replace ClassicAssert.IsEmpty(collection) with Assert.That(collection, Is.Empty). So the code block above will be changed into. [Test] public void Test() { Assert.That(collection, Is.Empty); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2035: Consider using Assert.That(collection, Is.Empty) instead of ClassicAssert.IsEmpty(collection) dotnet_diagnostic.NUnit2035.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2035 // Consider using Assert.That(collection, Is.Empty) instead of ClassicAssert.IsEmpty(collection) Code violating the rule here #pragma warning restore NUnit2035 // Consider using Assert.That(collection, Is.Empty) instead of ClassicAssert.IsEmpty(collection) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2035 // Consider using Assert.That(collection, Is.Empty) instead of ClassicAssert.IsEmpty(collection) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2035:Consider using Assert.That(collection, Is.Empty) instead of ClassicAssert.IsEmpty(collection)\", Justification = \"Reason...\")]" }, "articles/nunit-analyzers/NUnit2036.html": { "href": "articles/nunit-analyzers/NUnit2036.html", "title": "NUnit2036 | NUnit Docs", - "keywords": "NUnit2036 Consider using Assert.That(collection, Is.Not.Empty) instead of Assert.IsNotEmpty(collection) Topic Value Id NUnit2036 Severity Info Enabled True Category Assertion Code ClassicModelAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(collection, Is.Not.Empty), instead of the classic model, Assert.IsNotEmpty(collection). Motivation The classic Assert model contains less flexibility than the constraint model, so this analyzer marks usages of Assert.IsNotEmpty from the classic Assert model. [Test] public void Test() { Assert.IsNotEmpty(collection); } How to fix violations The analyzer comes with a code fix that will replace Assert.IsNotEmpty(collection) with Assert.That(collection, Is.Not.Empty). So the code block above will be changed into. [Test] public void Test() { Assert.That(collection, Is.Not.Empty); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2036: Consider using Assert.That(collection, Is.Not.Empty) instead of Assert.IsNotEmpty(collection) dotnet_diagnostic.NUnit2036.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2036 // Consider using Assert.That(collection, Is.Not.Empty) instead of Assert.IsNotEmpty(collection) Code violating the rule here #pragma warning restore NUnit2036 // Consider using Assert.That(collection, Is.Not.Empty) instead of Assert.IsNotEmpty(collection) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2036 // Consider using Assert.That(collection, Is.Not.Empty) instead of Assert.IsNotEmpty(collection) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2036:Consider using Assert.That(collection, Is.Not.Empty) instead of Assert.IsNotEmpty(collection)\", Justification = \"Reason...\")]" + "keywords": "NUnit2036 Consider using Assert.That(collection, Is.Not.Empty) instead of ClassicAssert.IsNotEmpty(collection) Topic Value Id NUnit2036 Severity Info Enabled True Category Assertion Code ClassicModelAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(collection, Is.Not.Empty), instead of the classic model, ClassicAssert.IsNotEmpty(collection). Motivation The classic Assert model contains less flexibility than the constraint model, so this analyzer marks usages of ClassicAssert.IsNotEmpty from the classic Assert model. [Test] public void Test() { ClassicAssert.IsNotEmpty(collection); } How to fix violations The analyzer comes with a code fix that will replace ClassicAssert.IsNotEmpty(collection) with Assert.That(collection, Is.Not.Empty). So the code block above will be changed into. [Test] public void Test() { Assert.That(collection, Is.Not.Empty); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2036: Consider using Assert.That(collection, Is.Not.Empty) instead of ClassicAssert.IsNotEmpty(collection) dotnet_diagnostic.NUnit2036.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2036 // Consider using Assert.That(collection, Is.Not.Empty) instead of ClassicAssert.IsNotEmpty(collection) Code violating the rule here #pragma warning restore NUnit2036 // Consider using Assert.That(collection, Is.Not.Empty) instead of ClassicAssert.IsNotEmpty(collection) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2036 // Consider using Assert.That(collection, Is.Not.Empty) instead of ClassicAssert.IsNotEmpty(collection) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2036:Consider using Assert.That(collection, Is.Not.Empty) instead of ClassicAssert.IsNotEmpty(collection)\", Justification = \"Reason...\")]" }, "articles/nunit-analyzers/NUnit2037.html": { "href": "articles/nunit-analyzers/NUnit2037.html", "title": "NUnit2037 | NUnit Docs", - "keywords": "NUnit2037 Consider using Assert.That(collection, Does.Contain(instance)) instead of Assert.Contains(instance, collection) Topic Value Id NUnit2037 Severity Info Enabled True Category Assertion Code ClassicModelAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(collection, Does.Contain(instance)), instead of the classic model, Assert.Contains(instance, collection). Motivation The assert Assert.Contains from the classic Assert model makes it easy to confuse the instance and the collection argument, so this analyzer marks usages of Assert.Contains. [Test] public void Test() { Assert.Contains(instance, collection); } How to fix violations The analyzer comes with a code fix that will replace Assert.Contains(instance, collection) with Assert.That(collection, Does.Contain(instance)). So the code block above will be changed into. [Test] public void Test() { Assert.That(collection, Does.Contain(instance)); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2037: Consider using Assert.That(collection, Does.Contain(instance)) instead of Assert.Contains(instance, collection) dotnet_diagnostic.NUnit2037.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2037 // Consider using Assert.That(collection, Does.Contain(instance)) instead of Assert.Contains(instance, collection) Code violating the rule here #pragma warning restore NUnit2037 // Consider using Assert.That(collection, Does.Contain(instance)) instead of Assert.Contains(instance, collection) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2037 // Consider using Assert.That(collection, Does.Contain(instance)) instead of Assert.Contains(instance, collection) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2037:Consider using Assert.That(collection, Does.Contain(instance)) instead of Assert.Contains(instance, collection)\", Justification = \"Reason...\")]" + "keywords": "NUnit2037 Consider using Assert.That(collection, Does.Contain(instance)) instead of ClassicAssert.Contains(instance, collection) Topic Value Id NUnit2037 Severity Info Enabled True Category Assertion Code ClassicModelAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(collection, Does.Contain(instance)), instead of the classic model, ClassicAssert.Contains(instance, collection). Motivation The assert ClassicAssert.Contains from the classic Assert model makes it easy to confuse the instance and the collection argument, so this analyzer marks usages of ClassicAssert.Contains. [Test] public void Test() { ClassicAssert.Contains(instance, collection); } How to fix violations The analyzer comes with a code fix that will replace ClassicAssert.Contains(instance, collection) with Assert.That(collection, Does.Contain(instance)). So the code block above will be changed into. [Test] public void Test() { Assert.That(collection, Does.Contain(instance)); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2037: Consider using Assert.That(collection, Does.Contain(instance)) instead of ClassicAssert.Contains(instance, collection) dotnet_diagnostic.NUnit2037.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2037 // Consider using Assert.That(collection, Does.Contain(instance)) instead of ClassicAssert.Contains(instance, collection) Code violating the rule here #pragma warning restore NUnit2037 // Consider using Assert.That(collection, Does.Contain(instance)) instead of ClassicAssert.Contains(instance, collection) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2037 // Consider using Assert.That(collection, Does.Contain(instance)) instead of ClassicAssert.Contains(instance, collection) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2037:Consider using Assert.That(collection, Does.Contain(instance)) instead of ClassicAssert.Contains(instance, collection)\", Justification = \"Reason...\")]" }, "articles/nunit-analyzers/NUnit2038.html": { "href": "articles/nunit-analyzers/NUnit2038.html", "title": "NUnit2038 | NUnit Docs", - "keywords": "NUnit2038 Consider using Assert.That(actual, Is.InstanceOf(expected)) instead of Assert.IsInstanceOf(expected, actual) Topic Value Id NUnit2038 Severity Info Enabled True Category Assertion Code ClassicModelAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(actual, Is.InstanceOf(expected)), instead of the classic model, Assert.IsInstanceOf(expected, actual). Motivation The assert Assert.IsInstanceOf from the classic Assert model makes it easy to confuse the expected and the actual argument, so this analyzer marks usages of Assert.IsInstanceOf. [Test] public void Test() { Assert.IsInstanceOf(expected, actual); } How to fix violations The analyzer comes with a code fix that will replace Assert.IsInstanceOf(expected, actual) with Assert.That(actual, Is.InstanceOf(expected)). So the code block above will be changed into. [Test] public void Test() { Assert.That(actual, Is.InstanceOf(expected)); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2038: Consider using Assert.That(actual, Is.InstanceOf(expected)) instead of Assert.IsInstanceOf(expected, actual) dotnet_diagnostic.NUnit2038.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2038 // Consider using Assert.That(actual, Is.InstanceOf(expected)) instead of Assert.IsInstanceOf(expected, actual) Code violating the rule here #pragma warning restore NUnit2038 // Consider using Assert.That(actual, Is.InstanceOf(expected)) instead of Assert.IsInstanceOf(expected, actual) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2038 // Consider using Assert.That(actual, Is.InstanceOf(expected)) instead of Assert.IsInstanceOf(expected, actual) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2038:Consider using Assert.That(actual, Is.InstanceOf(expected)) instead of Assert.IsInstanceOf(expected, actual)\", Justification = \"Reason...\")]" + "keywords": "NUnit2038 Consider using Assert.That(actual, Is.InstanceOf(expected)) instead of ClassicAssert.IsInstanceOf(expected, actual) Topic Value Id NUnit2038 Severity Info Enabled True Category Assertion Code ClassicModelAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(actual, Is.InstanceOf(expected)), instead of the classic model, ClassicAssert.IsInstanceOf(expected, actual). Motivation The assert ClassicAssert.IsInstanceOf from the classic Assert model makes it easy to confuse the expected and the actual argument, so this analyzer marks usages of ClassicAssert.IsInstanceOf. [Test] public void Test() { ClassicAssert.IsInstanceOf(expected, actual); } How to fix violations The analyzer comes with a code fix that will replace ClassicAssert.IsInstanceOf(expected, actual) with Assert.That(actual, Is.InstanceOf(expected)). So the code block above will be changed into. [Test] public void Test() { Assert.That(actual, Is.InstanceOf(expected)); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2038: Consider using Assert.That(actual, Is.InstanceOf(expected)) instead of ClassicAssert.IsInstanceOf(expected, actual) dotnet_diagnostic.NUnit2038.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2038 // Consider using Assert.That(actual, Is.InstanceOf(expected)) instead of ClassicAssert.IsInstanceOf(expected, actual) Code violating the rule here #pragma warning restore NUnit2038 // Consider using Assert.That(actual, Is.InstanceOf(expected)) instead of ClassicAssert.IsInstanceOf(expected, actual) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2038 // Consider using Assert.That(actual, Is.InstanceOf(expected)) instead of ClassicAssert.IsInstanceOf(expected, actual) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2038:Consider using Assert.That(actual, Is.InstanceOf(expected)) instead of ClassicAssert.IsInstanceOf(expected, actual)\", Justification = \"Reason...\")]" }, "articles/nunit-analyzers/NUnit2039.html": { "href": "articles/nunit-analyzers/NUnit2039.html", "title": "NUnit2039 | NUnit Docs", - "keywords": "NUnit2039 Consider using Assert.That(actual, Is.Not.InstanceOf(expected)) instead of Assert.IsNotInstanceOf(expected, actual) Topic Value Id NUnit2039 Severity Info Enabled True Category Assertion Code ClassicModelAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(actual, Is.Not.InstanceOf(expected)), instead of the classic model, Assert.IsNotInstanceOf(expected, actual). Motivation The assert Assert.IsNotInstanceOf from the classic Assert model makes it easy to confuse the expected and the actual argument, so this analyzer marks usages of Assert.IsNotInstanceOf. [Test] public void Test() { Assert.IsNotInstanceOf(expected, actual); } How to fix violations The analyzer comes with a code fix that will replace Assert.IsNotInstanceOf(expected, actual) with Assert.That(actual, Is.Not.InstanceOf(expected)). So the code block above will be changed into. [Test] public void Test() { Assert.That(actual, Is.Not.InstanceOf(expected)); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2039: Consider using Assert.That(actual, Is.Not.InstanceOf(expected)) instead of Assert.IsNotInstanceOf(expected, actual) dotnet_diagnostic.NUnit2039.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2039 // Consider using Assert.That(actual, Is.Not.InstanceOf(expected)) instead of Assert.IsNotInstanceOf(expected, actual) Code violating the rule here #pragma warning restore NUnit2039 // Consider using Assert.That(actual, Is.Not.InstanceOf(expected)) instead of Assert.IsNotInstanceOf(expected, actual) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2039 // Consider using Assert.That(actual, Is.Not.InstanceOf(expected)) instead of Assert.IsNotInstanceOf(expected, actual) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2039:Consider using Assert.That(actual, Is.Not.InstanceOf(expected)) instead of Assert.IsNotInstanceOf(expected, actual)\", Justification = \"Reason...\")]" + "keywords": "NUnit2039 Consider using Assert.That(actual, Is.Not.InstanceOf(expected)) instead of ClassicAssert.IsNotInstanceOf(expected, actual) Topic Value Id NUnit2039 Severity Info Enabled True Category Assertion Code ClassicModelAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(actual, Is.Not.InstanceOf(expected)), instead of the classic model, ClassicAssert.IsNotInstanceOf(expected, actual). Motivation The assert ClassicAssert.IsNotInstanceOf from the classic Assert model makes it easy to confuse the expected and the actual argument, so this analyzer marks usages of ClassicAssert.IsNotInstanceOf. [Test] public void Test() { ClassicAssert.IsNotInstanceOf(expected, actual); } How to fix violations The analyzer comes with a code fix that will replace ClassicAssert.IsNotInstanceOf(expected, actual) with Assert.That(actual, Is.Not.InstanceOf(expected)). So the code block above will be changed into. [Test] public void Test() { Assert.That(actual, Is.Not.InstanceOf(expected)); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2039: Consider using Assert.That(actual, Is.Not.InstanceOf(expected)) instead of ClassicAssert.IsNotInstanceOf(expected, actual) dotnet_diagnostic.NUnit2039.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2039 // Consider using Assert.That(actual, Is.Not.InstanceOf(expected)) instead of ClassicAssert.IsNotInstanceOf(expected, actual) Code violating the rule here #pragma warning restore NUnit2039 // Consider using Assert.That(actual, Is.Not.InstanceOf(expected)) instead of ClassicAssert.IsNotInstanceOf(expected, actual) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2039 // Consider using Assert.That(actual, Is.Not.InstanceOf(expected)) instead of ClassicAssert.IsNotInstanceOf(expected, actual) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2039:Consider using Assert.That(actual, Is.Not.InstanceOf(expected)) instead of ClassicAssert.IsNotInstanceOf(expected, actual)\", Justification = \"Reason...\")]" }, "articles/nunit-analyzers/NUnit2040.html": { "href": "articles/nunit-analyzers/NUnit2040.html", @@ -1987,7 +1987,7 @@ "articles/nunit-analyzers/NUnit2043.html": { "href": "articles/nunit-analyzers/NUnit2043.html", "title": "NUnit2043 | NUnit Docs", - "keywords": "NUnit2043 Use ComparisonConstraint for better assertion messages in case of failure Topic Value Id NUnit2043 Severity Info Enabled True Category Assertion Code ComparisonConstraintUsageAnalyzer Description Using ComparisonConstraint will lead to better assertion messages in case of failure. Motivation Using Is.GreaterThan constraint will lead to better assertion messages in case of failure, so this analyzer marks all usages of a comparison operators >, >=, < and <= where it is possible to replace with the appropriate comparison constraint. [Test] public void Test() { Assert.True(actual > expected); } How to fix violations The analyzer comes with a code fix that will replace Assert.True(actual > expected) with Assert.That(actual, Is.GreaterThan(expected)). So the code block above will be changed into [Test] public void Test() { Assert.That(actual, Is.GreaterThan(expected)); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2043: Use ComparisonConstraint for better assertion messages in case of failure dotnet_diagnostic.NUnit2043.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2043 // Use ComparisonConstraint for better assertion messages in case of failure Code violating the rule here #pragma warning restore NUnit2043 // Use ComparisonConstraint for better assertion messages in case of failure Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2043 // Use ComparisonConstraint for better assertion messages in case of failure Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2043:Use ComparisonConstraint for better assertion messages in case of failure\", Justification = \"Reason...\")]" + "keywords": "NUnit2043 Use ComparisonConstraint for better assertion messages in case of failure Topic Value Id NUnit2043 Severity Info Enabled True Category Assertion Code ComparisonConstraintUsageAnalyzer Description Using ComparisonConstraint will lead to better assertion messages in case of failure. Motivation Using Is.GreaterThan constraint will lead to better assertion messages in case of failure, so this analyzer marks all usages of a comparison operators >, >=, < and <= where it is possible to replace with the appropriate comparison constraint. [Test] public void Test() { ClassicAssert.True(actual > expected); } How to fix violations The analyzer comes with a code fix that will replace ClassicAssert.True(actual > expected) with Assert.That(actual, Is.GreaterThan(expected)). So the code block above will be changed into [Test] public void Test() { Assert.That(actual, Is.GreaterThan(expected)); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2043: Use ComparisonConstraint for better assertion messages in case of failure dotnet_diagnostic.NUnit2043.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2043 // Use ComparisonConstraint for better assertion messages in case of failure Code violating the rule here #pragma warning restore NUnit2043 // Use ComparisonConstraint for better assertion messages in case of failure Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2043 // Use ComparisonConstraint for better assertion messages in case of failure Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2043:Use ComparisonConstraint for better assertion messages in case of failure\", Justification = \"Reason...\")]" }, "articles/nunit-analyzers/NUnit2044.html": { "href": "articles/nunit-analyzers/NUnit2044.html", @@ -2009,15 +2009,30 @@ "title": "NUnit2047 | NUnit Docs", "keywords": "NUnit2047 Incompatible types for Within constraint Topic Value Id NUnit2047 Severity Warning Enabled True Category Assertion Code WithinUsageAnalyzer Description The Within modifier should only be used for numeric or Date/Time arguments or tuples containing only these element types. Using it on other types will not have any effect. Motivation To bring developers' attention to a scenario in which their code is actually having no effect and may reveal that their test is not doing what they expect. How to fix violations Example Violation [Test] public void RecordsEqualsMismatch() { var a = new Data(1, 1.0); var b = new Data(1, 1.1); Assert.That(a, Is.EqualTo(b).Within(0.2), $\"{a} != {b}\"); } private sealed record Data(int number, double Value); Explanation Using Within here doesn't make any sense, because NUnit cannot apply comparison with tolerance to the types we're comparing. Fix Remove the errant call to Within: [Test] public void RecordsEqualsMismatch() { var a = new Data(1, 1.0); var b = new Data(1, 1.1); Assert.That(a, Is.EqualTo(b), $\"{a} != {b}\"); } private sealed record Data(int number, double Value); Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2047: Incompatible types for Within constraint dotnet_diagnostic.NUnit2047.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2047 // Incompatible types for Within constraint Code violating the rule here #pragma warning restore NUnit2047 // Incompatible types for Within constraint Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2047 // Incompatible types for Within constraint Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2047:Incompatible types for Within constraint\", Justification = \"Reason...\")]" }, + "articles/nunit-analyzers/NUnit2048.html": { + "href": "articles/nunit-analyzers/NUnit2048.html", + "title": "NUnit2048 | NUnit Docs", + "keywords": "NUnit2048 Consider using Assert.That(...) instead of StringAssert(...) Topic Value Id NUnit2048 Severity Warning Enabled True Category Assertion Code StringAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(actual, {0}(expected)), instead of the classic model, StringAssert.{1}(expected, actual). Motivation The classic Assert model contains less flexibility than the constraint model and makes it easy to mix the expected and the actual parameter, so this analyzer marks usages of all StringAssert methods from the classic Assert model. [Test] public void Test() { StringAssert.Contains(expected, actual); StringAssert.DoesNotContain(expected, actual); StringAssert.StartsWith(expected, actual); StringAssert.DoesNotStartWith(expected, actual); StringAssert.EndsWith(expected, actual); StringAssert.DoesNotEndWith(expected, actual); StringAssert.AreEqualIgnoreCase(expected, actual); StringAssert.AreNotEqualIgnoreCase(expected, actual); StringAssert.IsMatch(expected, actual); StringAssert.DoesNotMatch(expected, actual); } How to fix violations The analyzer comes with a code fix that will replace StringAssert.(expected, actual) with Assert.That(actual, (expected)). So the code block above will be changed into. [Test] public void Test() { Assert.That(actual, Does.Contain(expected)); Assert.That(actual, Does.Not.Contain(expected)); Assert.That(actual, Does.StartWith(expected)); Assert.That(actual, Does.Not.StartWith(expected)); Assert.That(actual, Does.EndWith(expected)); Assert.That(actual, Does.Not.EndWith(expected)); Assert.That(actual, Is.EqualTo(expected).IgnoreCase); Assert.That(actual, Is.Not.EqualTo(expected).IgnoreCase); Assert.That(actual, Does.Match(expected)); Assert.That(actual, Does.Not.Match(expected)); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2048: Consider using Assert.That(...) instead of StringAssert(...) dotnet_diagnostic.NUnit2048.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2048 // Consider using Assert.That(...) instead of StringAssert(...) Code violating the rule here #pragma warning restore NUnit2048 // Consider using Assert.That(...) instead of StringAssert(...) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2048 // Consider using Assert.That(...) instead of StringAssert(...) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2048:Consider using Assert.That(...) instead of StringAssert(...)\", Justification = \"Reason...\")]" + }, + "articles/nunit-analyzers/NUnit2049.html": { + "href": "articles/nunit-analyzers/NUnit2049.html", + "title": "NUnit2049 | NUnit Docs", + "keywords": "NUnit2049 Consider using Assert.That(...) instead of CollectionAssert(...) Topic Value Id NUnit2049 Severity Warning Enabled True Category Assertion Code CollectionAssertUsageAnalyzer Description Consider using the constraint model, Assert.That(actual, {0}(expected)), instead of the classic model, CollectionAssert.{1}(expected, actual). Motivation The classic Assert model contains less flexibility than the constraint model and makes it easy to mix the order of the parameters, so this analyzer marks usages of all CollectionAssert methods from the classic Assert model. [Test] public void Test() { CollectionAssert.AllItemsAreInstancesOfType(collection, expected); CollectionAssert.AllItemsAreNotNull(collection); CollectionAssert.AllItemsAreUnique(collection); CollectionAssert.AreEqual(expected, actual); CollectionAssert.AreEquivalent(expected, actual); CollectionAssert.AreNotEqual(expected, actual); CollectionAssert.AreNotEquivalent(expected, actual); CollectionAssert.Contains(collection, expected); CollectionAssert.DoesNotContain(collection, expected); CollectionAssert.IsNotSubsetOf(subset, superset); CollectionAssert.IsSubsetOf(subset, superset); CollectionAssert.IsNotSupersetOf(superset, subset); CollectionAssert.IsSupersetOf(superset, subset); CollectionAssert.IsEmpty(collection); CollectionAssert.IsNotEmpty(collection); CollectionAssert.IsOrdered(collection); } How to fix violations The analyzer comes with a code fix that will replace StringAssert.(expected, actual) with Assert.That(actual, (expected)). So the code block above will be changed into. [Test] public void Test() { Assert.That(collection, Is.All.InstanceOf(expected)); Assert.That(collection, Is.All.Not.Null); Assert.That(collection, Is.Unique); Assert.That(actual, Is.EqualTo(expected).AsCollection); Assert.That(actual, Is.EquivalentTo(expected)); Assert.That(actual, Is.Not.EqualTo(expected).AsCollection); Assert.That(actual, Is.Not.EquivalentTo(expected)); Assert.That(collection, Has.Member(expected)); Assert.That(collection, Has.No.Member(expected)); Assert.That(subset, Is.Not.SubsetOf(superset)); Assert.That(subset, Is.SubsetOf(superset)); Assert.That(superset, Is.Not.SupersetOf(subset)); Assert.That(superset, Is.SupersetOf(subset)); Assert.That(collection, Is.Empty); Assert.That(collection, Is.Not.Empty); Assert.That(collection, Is.Ordered); } Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2049: Consider using Assert.That(...) instead of CollectionAssert(...) dotnet_diagnostic.NUnit2049.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2049 // Consider using Assert.That(...) instead of CollectionAssert(...) Code violating the rule here #pragma warning restore NUnit2049 // Consider using Assert.That(...) instead of CollectionAssert(...) Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2049 // Consider using Assert.That(...) instead of CollectionAssert(...) Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2049:Consider using Assert.That(...) instead of CollectionAssert(...)\", Justification = \"Reason...\")]" + }, + "articles/nunit-analyzers/NUnit2050.html": { + "href": "articles/nunit-analyzers/NUnit2050.html", + "title": "NUnit2050 | NUnit Docs", + "keywords": "NUnit2050 NUnit 4 no longer supports string.Format specification Topic Value Id NUnit2050 Severity Error Enabled True Category Assertion Code UpdateStringFormatToInterpolatableStringAnalyzer Description Replace format specification with interpolated string. Motivation In order to get better failure messages, NUnit4 uses CallerArgumentExpression to include the expression passed in for the actual and constraint parameters. These are parameters automatically supplied by the compiler. To facilitate this, we needed to drop support for composite formatting All NUnit4 asserts only allow a single message parameter which can be either a simple string literal or a interpolatable string This analyzer needs to be run when still building against NUnit3 as otherwise your code won't compile. When usages of the new methods with params are detected, the associated CodeFix will convert the format specification into an interpolated string. Once you moved to NUnit4 the analyzer has some limited functionality as there are a few cases where your NUnit3 code will compile on NUnit4, but not the way you want it. Here what you think are parameters to a format specification are actually interpreted as the actual and constraint expression strings. Unfortunately you only find that out when the test fails, which could be never. How to fix violations The following code, valid in NUnit3: [TestCase(4)] public void MustBeMultipleOf3(int value) { Assert.That(value % 3, Is.Zero, \"Expected value ({0}) to be multiple of 3\", value); } Will fail with the following message: Expected value (4) to be multiple of 3 Expected: 0 But was: 1 The associated CodeFix for this Analyzer rule will convert the test into: [TestCase(4)] public void MustBeMultipleOf3(int value) { Assert.That(value % 3, Is.Zero, $\"Expected value ({value}) to be multiple of 3\"); } The failure message for NUnit4 becomes: Expected value (4) to be multiple of 3 Assert.That(value % 3, Is.Zero) Expected: 0 But was: 1 As the [CallerMemberExpression] parameters are string, some of NUnit 3.x code compiles, but when failing show the wrong message: [TestCase(\"NUnit 4\", \"NUnit 3\")] public void TestMessage(string actual, string expected) { Assert.That(actual, Is.EqualTo(expected), \"Expected '{0}', but got: '{1}'\", expected, actual); } When using NUnit3, this results in: Expected 'NUnit 3', but got: 'NUnit 4' String lengths are both 7. Strings differ at index 6. Expected: \"NUnit 3\" But was: \"NUnit 4\" -----------------^ But when using NUnit4, we get: Message: Expected '{0}', but got: '{1}' Assert.That(NUnit 3, NUnit 4) String lengths are both 7. Strings differ at index 6. Expected: \"NUnit 3\" But was: \"NUnit 4\" -----------------^ Where the format string is treated as the message and its arguments are interpreted as the actual and expected expressions! After applying the code fix the code looks like: [TestCase(\"NUnit 4\", \"NUnit 3\")] public void TestMessage(string actual, string expected) { Assert.That(actual, Is.EqualTo(expected), $\"Expected '{expected}', but got: '{actual}'\"); } and the output: Message: Expected 'NUnit 3', but got: 'NUnit 4' Assert.That(actual, Is.EqualTo(expected)) String lengths are both 7. Strings differ at index 6. Expected: \"NUnit 3\" But was: \"NUnit 4\" -----------------^ Configure severity Via ruleset file Configure the severity per project, for more info see MSDN. Via .editorconfig file # NUnit2050: NUnit 4 no longer supports string.Format specification dotnet_diagnostic.NUnit2050.severity = chosenSeverity where chosenSeverity can be one of none, silent, suggestion, warning, or error. Via #pragma directive #pragma warning disable NUnit2050 // NUnit 4 no longer supports string.Format specification Code violating the rule here #pragma warning restore NUnit2050 // NUnit 4 no longer supports string.Format specification Or put this at the top of the file to disable all instances. #pragma warning disable NUnit2050 // NUnit 4 no longer supports string.Format specification Via attribute [SuppressMessage] [System.Diagnostics.CodeAnalysis.SuppressMessage(\"Assertion\", \"NUnit2050:NUnit 4 no longer supports string.Format specification\", Justification = \"Reason...\")]" + }, "articles/nunit-analyzers/NUnit3001.html": { "href": "articles/nunit-analyzers/NUnit3001.html", "title": "NUnit3001 | NUnit Docs", - "keywords": "NUnit3001 Expression was checked in an Assert.NotNull, Assert.IsNotNull or Assert.That call Topic Value Id NUnit3001 Severity Info Enabled True Category Suppressor Code DereferencePossiblyNullReferenceSuppressor Description This rule check diagnostics reported by the CS8601-CS8607 and CS8629 compiler errors: CS8602: Dereference of a possibly null reference. It then checks the previous statements for one of: Assert.NotNull(...) Assert.IsNotNull(...) Assert.That(..., Is.Not.Null) For the same expression as the one that raised the original compiler error. If found, the compiler error is suppressed. The rule also covers CS8629: Nullable value type may be null In this case, the previous statement is allowed to be one of: Assert.That(...HasValue) Assert.That(...HasValue, Is.True) Assert.True(...HasValue) Assert.IsTrue(...HasValue) The exception is that if the statement is part of an Assert.Multiple it is not suppressed, as in this case the statement containing the compiler error will be executed. Motivation [TestFixture] internal sealed class SomeClassFixture { private SomeClass instance; [SetUp] public void Setup() { instance = new SomeClass(); } [Test] public void Test() { string? result = instance.MethodUnderTest(); Assert.That(result, Is.Not.Null); Assert.That(result.Length, Is.GreaterThan(0)); } [Test] public void TestMultiple() { string? result = instance.MethodUnderTest(); Assert.Multiple(() => { Assert.That(result, Is.Not.Null); Assert.That(result.Length, Is.GreaterThan(0)); }); } } In the above fixture the compiler would give a warnings because result can be null and the compiler knows nothing about the Assert.That(result, Is.Not.Null); statement. The first occurrence - in the Test method - will be suppressed, the second - in the TestMultiple - will not. How to fix violations Ensure that the reference is not null before dereferencing it. This can be done using regular C# language constructs or NUnit assertions. Configure severity The rule has no severity, but can be disabled. Via ruleset file To disable the rule for a project, you need to add a ruleset file and add it to the project like: NUnit.Analyzers.Suppressions.ruleset For more info about rulesets see MSDN. Via .editorconfig file This is currently not working. Waiting for Roslyn # NUnit3001: Expression was checked in an Assert.NotNull, Assert.IsNotNull or Assert.That call dotnet_diagnostic.NUnit3001.severity = none" + "keywords": "NUnit3001 Expression was checked in an ClassicAssert.NotNull, ClassicAssert.IsNotNull or Assert.That call Topic Value Id NUnit3001 Severity Info Enabled True Category Suppressor Code DereferencePossiblyNullReferenceSuppressor Description This rule check diagnostics reported by the CS8601-CS8607 and CS8629 compiler errors: CS8602: Dereference of a possibly null reference. It then checks the previous statements for one of: ClassicAssert.NotNull(...) ClassicAssert.IsNotNull(...) Assert.That(..., Is.Not.Null) For the same expression as the one that raised the original compiler error. If found, the compiler error is suppressed. The rule also covers CS8629: Nullable value type may be null In this case, the previous statement is allowed to be one of: Assert.That(...HasValue) Assert.That(...HasValue, Is.True) ClassicAssert.True(...HasValue) ClassicAssert.IsTrue(...HasValue) The exception is that if the statement is part of an Assert.Multiple it is not suppressed, as in this case the statement containing the compiler error will be executed. Motivation [TestFixture] internal sealed class SomeClassFixture { private SomeClass instance; [SetUp] public void Setup() { instance = new SomeClass(); } [Test] public void Test() { string? result = instance.MethodUnderTest(); Assert.That(result, Is.Not.Null); Assert.That(result.Length, Is.GreaterThan(0)); } [Test] public void TestMultiple() { string? result = instance.MethodUnderTest(); Assert.Multiple(() => { Assert.That(result, Is.Not.Null); Assert.That(result.Length, Is.GreaterThan(0)); }); } } In the above fixture the compiler would give a warnings because result can be null and the compiler knows nothing about the Assert.That(result, Is.Not.Null); statement. The first occurrence - in the Test method - will be suppressed, the second - in the TestMultiple - will not. How to fix violations Ensure that the reference is not null before dereferencing it. This can be done using regular C# language constructs or NUnit assertions. Configure severity The rule has no severity, but can be disabled. Via ruleset file To disable the rule for a project, you need to add a ruleset file and add it to the project like: NUnit.Analyzers.Suppressions.ruleset For more info about rulesets see MSDN. Via .editorconfig file This is currently not working. Waiting for Roslyn # NUnit3001: Expression was checked in an ClassicAssert.NotNull, ClassicAssert.IsNotNull or Assert.That call dotnet_diagnostic.NUnit3001.severity = none" }, "articles/nunit-analyzers/NUnit3002.html": { "href": "articles/nunit-analyzers/NUnit3002.html", "title": "NUnit3002 | NUnit Docs", - "keywords": "NUnit3002 Field/Property is initialized in SetUp or OneTimeSetUp method Topic Value Id NUnit3002 Severity Info Enabled True Category Suppressor Code NonNullableFieldOrPropertyIsUninitializedSuppressor Description This rule check diagnostics reported by the CS8618 compiler error: CS8618: Non-nullable field '_name_' must contain a non-null value when exiting constructor. Consider declaring the field as nullable. CS8618: Non-nullable property '_Name_' must contain a non-null value when exiting constructor. Consider declaring the property as nullable. If the violating field/property is set in the SetUp or OneTimeSetUp method. The rule suppresses the error. This allows for non-nullable fields/properties to be used in a TestFixture. The rule does detect indirect calls, when the field is set in a method called by the SetUp or OneTimeSetUp methods. Motivation [TestFixture] internal sealed class SomeClassFixture { private SomeClass instance; [SetUp] public void Setup() { instance = new SomeClass(); } [Test] public void Test() { Assert.That(instance.MethodUnderTest(), Is.True) } } In the above fixture the compiler would give a warning because instance is not set in the constructor. The suggestion to mark instance as nullable would mean that we have to test for null in all Test methods or use the null suppression operator (!) everywhere. How to fix violations Initialize the field in the SetUp or OneTimeSetUp methods. Configure severity The rule has no severity, but can be disabled. Via ruleset file To disable the rule for a project, you need to add a ruleset file and add it to the project like: NUnit.Analyzers.Suppressions.ruleset For more info about rulesets see MSDN. Via .editorconfig file This is currently not working. Waiting for Roslyn # NUnit3002: Field/Property is initialized in SetUp or OneTimeSetUp method dotnet_diagnostic.NUnit3002.severity = none" + "keywords": "NUnit3002 Field/Property is initialized in SetUp or OneTimeSetUp method Topic Value Id NUnit3002 Severity Info Enabled True Category Suppressor Code NonNullableFieldOrPropertyIsUninitializedSuppressor Description This rule check diagnostics reported by the CS8618 compiler error: CS8618: Non-nullable field '_name_' must contain a non-null value when exiting constructor. Consider declaring the field as nullable. CS8618: Non-nullable property '_Name_' must contain a non-null value when exiting constructor. Consider declaring the property as nullable. If the violating field/property is set in the SetUp or OneTimeSetUp method. The rule suppresses the error. This allows for non-nullable fields/properties to be used in a TestFixture. The rule does detect indirect calls, when the field is set in a method called by the SetUp or OneTimeSetUp methods. Motivation [TestFixture] internal sealed class SomeClassFixture { private SomeClass instance; [SetUp] public void Setup() { instance = new SomeClass(); } [Test] public void Test() { Assert.That(instance.MethodUnderTest(), Is.True) } } In the above fixture the compiler would give a warning because instance is not set in the constructor. The suggestion to mark instance as nullable would mean that we have to test for null in all Test methods or use the null suppression operator (!) everywhere. How to fix violations Initialize the field in the SetUp or OneTimeSetUp methods. Configure severity The rule has no severity, but can be disabled. Via ruleset file To disable the rule for a project, you need to add a ruleset file and add it to the project like: NUnit.Analyzers.Suppressions.ruleset For more info about rulesets see MSDN. Via .editorconfig file This is currently not working. Waiting for Roslyn # NUnit3002: Field/Property is initialized in SetUp or OneTimeSetUp method dotnet_diagnostic.NUnit3002.severity = none" }, "articles/nunit-analyzers/NUnit3003.html": { "href": "articles/nunit-analyzers/NUnit3003.html", diff --git a/manifest.json b/manifest.json index 160a408e3..55a1c5dfe 100644 --- a/manifest.json +++ b/manifest.json @@ -4069,6 +4069,36 @@ }, "version": "" }, + { + "type": "Conceptual", + "source_relative_path": "articles/nunit-analyzers/NUnit2048.md", + "output": { + ".html": { + "relative_path": "articles/nunit-analyzers/NUnit2048.html" + } + }, + "version": "" + }, + { + "type": "Conceptual", + "source_relative_path": "articles/nunit-analyzers/NUnit2049.md", + "output": { + ".html": { + "relative_path": "articles/nunit-analyzers/NUnit2049.html" + } + }, + "version": "" + }, + { + "type": "Conceptual", + "source_relative_path": "articles/nunit-analyzers/NUnit2050.md", + "output": { + ".html": { + "relative_path": "articles/nunit-analyzers/NUnit2050.html" + } + }, + "version": "" + }, { "type": "Conceptual", "source_relative_path": "articles/nunit-analyzers/NUnit3001.md", diff --git a/sitemap.xml b/sitemap.xml index 26414cf03..9bf9bed72 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -2,3997 +2,4015 @@ http://docs.nunit.org/404.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Common.ColorConsole.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Common.ColorConsoleWriter.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Common.ColorStyle.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Common.CommandLineOptions.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Common.ExtendedTextWrapper.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Common.ExtendedTextWriter.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Common.OutputSpecification.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Common.TestNameParser.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Common.TestSelectionParser.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Common.TestSelectionParserException.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Common.Token.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Common.TokenKind.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Common.Tokenizer.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Common.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Compatibility.AttributeHelper.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Compatibility.LongLivedMarshalByRefObject.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Compatibility.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.ActionTargets.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.ApartmentAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Api.DefaultTestAssemblyBuilder.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Api.FrameworkController.CountTestsAction.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Api.FrameworkController.ExploreTestsAction.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Api.FrameworkController.FrameworkControllerAction.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Api.FrameworkController.LoadTestsAction.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Api.FrameworkController.RunAsyncAction.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Api.FrameworkController.RunTestsAction.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Api.FrameworkController.StopRunAction.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Api.FrameworkController.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Api.ITestAssemblyBuilder.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Api.ITestAssemblyRunner.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Api.NUnitTestAssemblyRunner.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Api.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Assert.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.AssertBase.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.AssertionException.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Assume.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.AsyncTestDelegate.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.AuthorAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.CancelAfterAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.CategoryAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.CombinatorialAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.CombiningStrategyAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.ActualValueDelegate-1.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.AllItemsConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.AllOperator.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.AndConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.AndOperator.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.AnyOfConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.AssignableFromConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.AssignableToConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.AttributeConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.AttributeExistsConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.AttributeOperator.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.BinaryConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.BinaryOperator.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.CollectionConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.CollectionEquivalentConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.CollectionEquivalentConstraintResult.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.CollectionItemsEqualConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.CollectionOperator.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.CollectionOrderedConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.CollectionSubsetConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.CollectionSupersetConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.CollectionTally.CollectionTallyResult.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.CollectionTally.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.ComparisonAdapter.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.ComparisonConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.Constraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.ConstraintBuilder.ConstraintStack.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.ConstraintBuilder.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.ConstraintExpression.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.ConstraintOperator.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.ConstraintResult.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.ConstraintStatus.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.ContainsConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.CountZeroConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.DateTimes.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.DefaultConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.DelayedConstraint.WithDimensionedDelayInterval.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.DelayedConstraint.WithRawDelayInterval.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.DelayedConstraint.WithRawPollingInterval.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.DelayedConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.DictionaryContainsKeyConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.DictionaryContainsKeyValuePairConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.DictionaryContainsValueConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.EmptyCollectionConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.EmptyConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.EmptyDirectoryConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.EmptyGuidConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.EmptyStringConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.EndsWithConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.EqualConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.EqualConstraintResult.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.EqualityAdapter.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.ExactCountConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.ExactCountOperator.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.ExactTypeConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.ExceptionTypeConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.FalseConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.FileOrDirectoryExistsConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.GreaterThanConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.GreaterThanOrEqualConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.IConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.IResolveConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.IndexerConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.IndexerOperator.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.InstanceOfTypeConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.Interval.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.ItemsConstraintExpression.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.LessThanConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.LessThanOrEqualConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.MessageWriter.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.NUnitComparer.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.NUnitEqualityComparer.FailurePoint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.NUnitEqualityComparer.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.NaNConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.NoItemConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.NoneOperator.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.NotConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.NotOperator.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.NullConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.OrConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.OrOperator.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.PathConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.PredicateConstraint-1.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.PrefixConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.PrefixOperator.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.PropOperator.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.PropertyConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.PropertyExistsConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.RangeConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.RegexConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.ResolvableConstraintExpression.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.ReusableConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.SameAsConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.SamePathConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.SamePathOrUnderConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.SelfResolvingOperator.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.SomeItemsConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.SomeOperator.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.StartsWithConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.StringConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.SubPathConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.SubstringConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.ThrowsConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.ThrowsExceptionConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.ThrowsNothingConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.ThrowsOperator.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.Tolerance.Range.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.Tolerance.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.ToleranceMode.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.TrueConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.TypeConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.UniqueItemsConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.ValueFormatter.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.ValueFormatterFactory.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.WithOperator.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.XmlSerializableConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Constraints.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Contains.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.CultureAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.DatapointAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.DatapointSourceAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.DatapointsAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.DefaultFloatingPointToleranceAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.DescriptionAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Does.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.ExplicitAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.FixtureLifeCycleAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Has.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.ITestAction.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.IgnoreAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.IgnoreException.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.IncludeExcludeAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.InconclusiveException.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Interfaces.AssertionResult.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Interfaces.AssertionStatus.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Interfaces.FailureSite.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Interfaces.IApplyToContext.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Interfaces.IApplyToTest.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Interfaces.IApplyToTestSuite.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Interfaces.ICombiningStrategy.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Interfaces.ICommandWrapper.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Interfaces.IFixtureBuilder.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Interfaces.IFixtureBuilder2.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Interfaces.IImplyFixture.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Interfaces.IMethodInfo.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Interfaces.IParameterDataProvider.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Interfaces.IParameterDataSource.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Interfaces.IParameterInfo.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Interfaces.IPreFilter.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Interfaces.IPropertyBag.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Interfaces.IReflectionInfo.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Interfaces.IRepeatTest.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Interfaces.ISimpleTestBuilder.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Interfaces.ISuiteBuilder.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Interfaces.ITest.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Interfaces.ITestBuilder.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Interfaces.ITestCaseBuilder.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Interfaces.ITestCaseData.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Interfaces.ITestData.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Interfaces.ITestFilter.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Interfaces.ITestFixtureData.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Interfaces.ITestListener.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Interfaces.ITestResult.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Interfaces.ITypeInfo.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Interfaces.IWrapSetUpTearDown.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Interfaces.IWrapTestMethod.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Interfaces.IXmlNodeBuilder.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Interfaces.ResultState.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Interfaces.RunState.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Interfaces.TNode.AttributeDictionary.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Interfaces.TNode.NodeList.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Interfaces.TNode.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Interfaces.TestAttachment.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Interfaces.TestMessage.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Interfaces.TestOutput.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Interfaces.TestStatus.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Interfaces.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Is.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Iz.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Legacy.ClassicAssert.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Legacy.CollectionAssert.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Legacy.DirectoryAssert.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Legacy.FileAssert.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Legacy.StringAssert.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Legacy.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.LevelOfParallelismAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.LifeCycle.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.MaxTimeAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.MultipleAssertException.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.NUnitAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.NUnitString.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.NonParallelizableAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.OneTimeSetUpAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.OneTimeTearDownAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.OrderAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.PairwiseAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.ParallelScope.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.ParallelizableAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.PlatformAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.PropertyAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.RandomAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.RangeAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.RepeatAttribute.RepeatedTestCommand.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.RepeatAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.RequiresThreadAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.ResultStateException.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.RetryAttribute.RetryCommand.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.RetryAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.SequentialAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.SetCultureAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.SetUICultureAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.SetUpAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.SetUpFixtureAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.SingleThreadedAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.SuccessException.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.TearDownAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.TestActionAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.TestAssemblyDirectoryResolveAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.TestAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.TestCaseAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.TestCaseData.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.TestCaseSourceAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.TestContext.PropertyBagAdapter.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.TestContext.ResultAdapter.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.TestContext.TestAdapter.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.TestContext.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.TestDelegate.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.TestFixtureAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.TestFixtureData.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.TestFixtureSourceAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.TestOfAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.TestParameters.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.TheoryAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Throws.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.TimeoutAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.ValueSourceAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.ValuesAttribute.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.Warn.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Framework.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.FrameworkPackageSettings.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Options.Option.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Options.OptionAction-2.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Options.OptionContext.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Options.OptionException.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Options.OptionSet.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Options.OptionValueCollection.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Options.OptionValueType.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.Options.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnit.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnitLite.AutoRun.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnitLite.NUnit2XmlOutputWriter.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnitLite.NUnit3XmlOutputWriter.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnitLite.NUnitLiteOptions.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnitLite.OutputManager.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnitLite.OutputWriter.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnitLite.ResultSummary.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnitLite.TeamCityEventListener.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnitLite.TestCaseOutputWriter.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnitLite.TextRunner.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnitLite.TextUI.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnitLite.TimeStamp.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/NUnitLite.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/System.Web.UI.ICallbackEventHandler.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/api/System.Web.UI.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/developer-info/Best-practices-for-XML-documentation.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/developer-info/Coding-Standards.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/developer-info/Contributions.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/developer-info/Issue-Tracking.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/developer-info/Notes-Toward-NUnit-4.0.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/developer-info/Packaging-Extensions.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/developer-info/Packaging-the-Console-and-Engine.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/developer-info/Packaging-the-Framework.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/developer-info/Packaging-the-Installer.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/developer-info/Packaging-the-V2-Adapter.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/developer-info/Packaging-the-V3-and-V4-Adapter.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/developer-info/Team-Practices.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/developer-info/The-Teams.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/legacy/index.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit-Analyzers.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1001.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1002.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1003.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1004.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1005.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1006.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1007.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1008.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1009.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1010.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1011.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1012.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1013.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1014.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1015.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1016.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1017.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1018.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1019.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1020.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1021.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1022.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1023.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1024.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1025.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1026.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1027.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1028.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1029.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1030.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1031.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1032.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2001.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2002.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2003.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2004.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2005.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2006.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2007.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2008.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2009.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2010.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2011.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2012.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2013.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2014.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2015.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2016.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2017.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2018.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2019.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2020.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2021.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2022.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2023.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2024.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2025.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2026.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2027.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2028.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2029.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2030.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2031.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2032.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2033.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2034.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2035.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2036.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2037.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2038.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2039.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2040.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2041.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2042.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2043.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2044.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2045.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2046.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2047.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 + daily + 0.5 + + + http://docs.nunit.org/articles/nunit-analyzers/NUnit2048.html + 2024-03-29T01:51:26+00:00 + daily + 0.5 + + + http://docs.nunit.org/articles/nunit-analyzers/NUnit2049.html + 2024-03-29T01:51:26+00:00 + daily + 0.5 + + + http://docs.nunit.org/articles/nunit-analyzers/NUnit2050.html + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit3001.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit3002.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit3003.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit3004.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-engine/Getting-Started.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-engine/Index.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-engine/Test-Engine-API.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-engine/extensions/AvailableExtensions.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-engine/extensions/Index.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-engine/extensions/Installing-Extensions.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-engine/extensions/creating-extensions/Event-Listeners.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-engine/extensions/creating-extensions/Framework-Drivers.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-engine/extensions/creating-extensions/Index.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-engine/extensions/creating-extensions/Project-Loaders.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-engine/extensions/creating-extensions/Result-Writers.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-engine/extensions/creating-extensions/Writing-Engine-Extensions.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-engine/release-notes.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/Towards-NUnit4.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/extending-nunit/Action-Attributes.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/extending-nunit/Custom-Attributes.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/extending-nunit/Custom-Constraints.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/extending-nunit/Framework-Extensibility.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/extending-nunit/IApplyToContext-Interface.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/extending-nunit/IApplyToTest-Interface.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/extending-nunit/ICommandWrapper-Interface.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/extending-nunit/IFixtureBuilder-Interface.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/extending-nunit/IImplyFixture-Interface.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/extending-nunit/IParameterDataSource-Interface.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/extending-nunit/ISimpleTestBuilder-Interface.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/extending-nunit/ITestBuilder-Interface.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/extending-nunit/Index.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/getting-started/dotnet-core-and-dotnet-standard.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/getting-started/installation.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/getting-started/samples.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/getting-started/upgrading.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/intro.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/license.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/release-notes/Nunit4.0-MigrationGuide.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/release-notes/Pre-3.5-Release-Notes.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/release-notes/breaking-changes.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/release-notes/framework.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/running-tests/Console-Command-Line.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/running-tests/Console-Runner.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/running-tests/Index.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/running-tests/NUnit-Test-Projects.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/running-tests/NUnitLite-Options.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/running-tests/NUnitLite-Runner.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/running-tests/Template-Based-Test-Naming.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/running-tests/Test-Selection-Language.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/nunit-internals/Active-Attributes.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/nunit-internals/Architectural-Overview.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/nunit-internals/Attribute-Hierarchy.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/nunit-internals/Framework-Api.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/nunit-internals/Framework-Design.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/nunit-internals/NUnit-3.0-Architecture-(2009).html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/nunit-internals/NUnit-APIs.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/nunit-internals/NUnit-Internals.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/nunit-internals/Test-Discovery-And-Execution.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/nunit-internals/specs/Dynamic-Test-Cases-Spec.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/nunit-internals/specs/Engine-Addins-Spec.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/nunit-internals/specs/Extended-Constraint-Syntax-Spec.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/nunit-internals/specs/Include%20and%20Exclude%20Attributes%20(Alternatives).html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/nunit-internals/specs/Include-and-Exclude-Attributes-Spec.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/nunit-internals/specs/Internal-Trace-Spec.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/nunit-internals/specs/Parameterized-Test-Fixtures-Spec.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/nunit-internals/specs/Specifications.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/nunit-internals/specs/Test-Dependency-Attribute-Spec.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/usage/Addin-Replacement-in-the-Framework.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/usage/Assembly-Isolation.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/usage/Configuration-Files.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/usage/Counting-Tests.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/usage/Engine-Parallel-Test-Execution.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/usage/Framework-Parallel-Test-Execution.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/usage/NUnit-Project-XML-Format.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/usage/Parameterized-Tests.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/usage/Platform-Selection.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/usage/Runtime-Selection.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/usage/SetUp-and-TearDown.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/usage/Test-Filters.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/usage/Test-Result-XML-Format.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/usage/Usage-Notes.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/usage/Visual-Studio-Support.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/usage/XML-Formats.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/AssertionHelper.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/Assumptions.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/ListMapper.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/Randomizer-Methods.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/TestCaseData.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/TestContext.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/TestFixtureData.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/Warnings.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/assertion-models/classic.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/assertion-models/constraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/assertion-models/special.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/assertions.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.AreEqual.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.AreNotEqual.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.AreNotSame.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.AreSame.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.Catch.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.CatchAsync.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.Contains.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.DoesNotThrow.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.DoesNotThrowAsync.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.False.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.Greater.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.GreaterOrEqual.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.IsAssignableFrom.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.IsEmpty.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.IsInstanceOf.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.IsNaN.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.IsNotAssignableFrom.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.IsNotEmpty.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.IsNotInstanceOf.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.Less.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.LessOrEqual.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.Negative.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.NotNull.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.NotZero.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.Null.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.Positive.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.Throws.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.ThrowsAsync.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.True.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.Zero.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Collection-Assert.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Directory-Assert.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/File-Assert.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/String-Assert.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/multiple-asserts.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/special-assertions/Assert.Fail.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/special-assertions/Assert.Ignore.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/special-assertions/Assert.Inconclusive.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/special-assertions/Assert.Pass.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/apartment.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/author.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/cancelafter.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/category.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/combinatorial.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/culture.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/datapoint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/datapointsource.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/defaultfloatingpointtolerance.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/description.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/explicit.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/fixturelifecycle.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/ignore.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/levelofparallelism.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/maxtime.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/nonparallelizable.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/nontestassembly.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/onetimesetup.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/onetimeteardown.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/order.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/pairwise.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/parallelizable.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/platform.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/property.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/random.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/range.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/repeat.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/requiresthread.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/retry.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/sequential.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/setculture.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/setuiculture.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/setup.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/setupfixture.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/singlethreaded.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/teardown.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/test.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/testcase.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/testcasesource.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/testfixture.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/testfixturesetup.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/testfixturesource.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/testfixtureteardown.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/testof.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/theory.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/timeout.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/values.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/valuesource.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/AllItemsConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/AndConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/AnyOfConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/AssignableFromConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/AssignableToConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/AttributeConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/AttributeExistsConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/BinarySerializableConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/CollectionContainsConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/CollectionEquivalentConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/CollectionOrderedConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/CollectionSubsetConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/CollectionSupersetConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/Constraints.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/DelayedConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/DictionaryContainsKeyConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/DictionaryContainsKeyValuePairConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/DictionaryContainsValueConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/EmptyCollectionConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/EmptyConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/EmptyDirectoryConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/EmptyStringConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/EndsWithConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/EqualConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/ExactCountConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/ExactTypeConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/FalseConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/FileOrDirectoryExistsConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/GreaterThanConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/GreaterThanOrEqualConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/InstanceOfTypeConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/LessThanConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/LessThanOrEqualConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/NaNConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/NoItemConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/NotConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/NullConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/OrConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/PropertyConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/PropertyExistsConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/RangeConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/RegexConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/ReusableConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/SameAsConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/SamePathConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/SamePathOrUnderConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/SomeItemsConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/StartsWithConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/SubPathConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/SubstringConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/ThrowsConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/ThrowsNothingConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/TrueConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/UniqueItemsConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/WhiteSpaceConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/XmlSerializableConstraint.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/setup-teardown/SetUp-and-TearDown-Changes.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/setup-teardown/index.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/vs-test-adapter/Adapter-Engine-Compatibility.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/vs-test-adapter/Adapter-Installation.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/vs-test-adapter/Adapter-License.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/vs-test-adapter/Adapter-Source-Stepping.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/vs-test-adapter/AdapterV2-Release-Notes.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/vs-test-adapter/AdapterV3-Release-Notes.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/vs-test-adapter/AdapterV4-Release-Notes.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/vs-test-adapter/Debugging.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/vs-test-adapter/Index.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/vs-test-adapter/Known-Problems.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/vs-test-adapter/Resources.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/vs-test-adapter/Supported-Frameworks.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/vs-test-adapter/Tips-And-Tricks.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/vs-test-adapter/Trace-and-Debug.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/vs-test-adapter/Usage.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/vs-test-generator/TestGenerator-Installation.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/vs-test-generator/TestGenerator-Release-Notes-VS2015.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/vs-test-generator/TestGenerator-Release-Notes-VS2017-VS2019.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/vs-test-generator/TestGenerator-Release-Notes.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/vs-test-generator/Visual-Studio-Test-Generator.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/xamarin-runners/Getting-Started-in-Visual-Studio-for-Mac.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/xamarin-runners/Getting-Started-in-Visual-Studio.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/articles/xamarin-runners/index.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5 http://docs.nunit.org/index.html - 2024-03-29T01:46:56+00:00 + 2024-03-29T01:51:26+00:00 daily 0.5