diff --git a/articles/nunit/writing-tests/attributes/testcasesource.html b/articles/nunit/writing-tests/attributes/testcasesource.html index 6bfa17817..3f6f9b385 100644 --- a/articles/nunit/writing-tests/attributes/testcasesource.html +++ b/articles/nunit/writing-tests/attributes/testcasesource.html @@ -122,7 +122,12 @@
Note
  • It may be a field, property or method in the test class.
  • It must be static. This is a change from NUnit 2.x.
  • It must return an IEnumerable or a type that implements IEnumerable. For fields an array is generally used. For -properties and methods, you may return an array or implement your own iterator.
  • +properties and methods, you may return an array or implement your own iterator. + +
  • The individual items returned by the enumerator must be compatible with the signature of the method on which the attribute appears. See the Test Case Construction section below for details.
  • @@ -192,7 +197,12 @@
    Note
  • It may be a field, property or method in the test class.
  • It must be static. This is a change from NUnit 2.x.
  • It must return an IEnumerable or a type that implements IEnumerable. For fields an array is generally used. For -properties and methods, you may return an array or implement your own iterator.
  • +properties and methods, you may return an array or implement your own iterator. + +
  • The individual items returned by the enumerator must be compatible with the signature of the method on which the attribute appears. See the Test Case Construction section below for details.
  • diff --git a/articles/nunit/writing-tests/attributes/testfixturesource.html b/articles/nunit/writing-tests/attributes/testfixturesource.html index cb04ee4de..8678355af 100644 --- a/articles/nunit/writing-tests/attributes/testfixturesource.html +++ b/articles/nunit/writing-tests/attributes/testfixturesource.html @@ -111,7 +111,12 @@

    Form 1 - [TestFixtureSource
  • It may be a field, property or method in the test class.
  • It must be static.
  • It must return an IEnumerable or a type that implements IEnumerable. For fields an array is generally used. For -properties and methods, you may return an array or implement your own iterator.
  • +properties and methods, you may return an array or implement your own iterator. + +
  • The individual items returned by the enumerator must either be object arrays or derive from the TestFixtureParameters class. Arguments must be consistent with the fixture constructor.
  • @@ -140,7 +145,12 @@

    Form 2 - [T
  • It may be a field, property or method in the test class.
  • It must be static.
  • It must return an IEnumerable or a type that implements IEnumerable. For fields an array is generally used. For -properties and methods, you may return an array or implement your own iterator.
  • +properties and methods, you may return an array or implement your own iterator. + +
  • The individual items returned by the enumerator must either be object arrays or derive from the TestFixtureParameters class. Arguments must be consistent with the fixture constructor.
  • diff --git a/articles/nunit/writing-tests/attributes/valuesource.html b/articles/nunit/writing-tests/attributes/valuesource.html index 9241d3319..6e17a16a4 100644 --- a/articles/nunit/writing-tests/attributes/valuesource.html +++ b/articles/nunit/writing-tests/attributes/valuesource.html @@ -97,7 +97,12 @@

    ValueSource

    diff --git a/index.json b/index.json index d33680b98..3c818d223 100644 --- a/index.json +++ b/index.json @@ -1367,7 +1367,7 @@ "articles/nunit/writing-tests/attributes/testcasesource.html": { "href": "articles/nunit/writing-tests/attributes/testcasesource.html", "title": "TestCaseSource | NUnit Docs", - "keywords": "TestCaseSource TestCaseSourceAttribute is used on a parameterized test method to identify the source from which the required arguments will be provided. The attribute additionally identifies the method as a test method. The data is kept separate from the test itself and may be used by multiple test methods. See Parameterized Tests for a general introduction to tests with arguments. Usage Consider a test of the divide operation, taking three arguments: the numerator, the denominator and the expected result. We can specify the test and its data using one of the forms of TestCaseSourceAttribute: Form 1 - [TestCaseSource(string sourceName)] Note We use the nameof operator to avoid introducing magic strings into code, which offers better resilience when refactoring. While nameof is recommended, you could also use the string \"DivideCases\" to achieve the same outcome. public class BasicTestCaseSourceFixture { [TestCaseSource(nameof(DivideCases))] public void DivideTest(int n, int d, int q) { ClassicAssert.AreEqual(q, n / d); } public static object[] DivideCases = { new object[] { 12, 3, 4 }, new object[] { 12, 2, 6 }, new object[] { 12, 4, 3 } }; } The single attribute argument in this form is a string representing the name of the source used to provide test cases. It has the following characteristics: It may be a field, property or method in the test class. It must be static. This is a change from NUnit 2.x. It must return an IEnumerable or a type that implements IEnumerable. For fields an array is generally used. For properties and methods, you may return an array or implement your own iterator. The individual items returned by the enumerator must be compatible with the signature of the method on which the attribute appears. See the Test Case Construction section below for details. Sometimes we would like to parameterize the source, e.g. if we use the same source for multiple tests, to this end it is possible to pass parameters to the source, if the source is a method. The parameters are specified as an array of parameters that are passed to the source method. public class ParameterizedSourceExampleFixture { [TestCaseSource(nameof(TestStrings), new object[] { true })] public void LongNameWithEvenNumberOfCharacters(string name) { Assert.That(name.Length, Is.GreaterThan(5)); bool hasEvenNumOfCharacters = (name.Length % 2) == 0; Assert.That(hasEvenNumOfCharacters, Is.True); } [TestCaseSource(nameof(TestStrings), new object[] { false })] public void ShortNameWithEvenNumberOfCharacters(string name) { Assert.That(name.Length, Is.LessThan(15)); bool hasEvenNumOfCharacters = (name.Length % 2) == 0; Assert.That(hasEvenNumOfCharacters, Is.True); } static IEnumerable TestStrings(bool generateLongTestCase) { if (generateLongTestCase) { yield return \"ThisIsAVeryLongNameThisIsAVeryLongName\"; yield return \"SomeName\"; yield return \"YetAnotherName\"; } else { yield return \"AA\"; yield return \"BB\"; yield return \"CC\"; } } } Form 2 - [TestCaseSource(Type sourceType, string sourceName)] public class TestFixtureThatUsesClassMethodAsTestCaseSource { [TestCaseSource(typeof(AnotherClassWithTestFixtures), nameof(AnotherClassWithTestFixtures.DivideCases))] public void DivideTest(int n, int d, int q) { ClassicAssert.AreEqual(q, n / d); } } public class AnotherClassWithTestFixtures { public static object[] DivideCases = { new object[] { 12, 3, 4 }, new object[] { 12, 2, 6 }, new object[] { 12, 4, 3 } }; } The first argument of the attribute in this form is a Type representing the class that will provide the test cases. The second argument is a string representing the name of the source used to provide test cases. It has the following characteristics: It may be a field, property or method in the test class. It must be static. This is a change from NUnit 2.x. It must return an IEnumerable or a type that implements IEnumerable. For fields an array is generally used. For properties and methods, you may return an array or implement your own iterator. The individual items returned by the enumerator must be compatible with the signature of the method on which the attribute appears. See the Test Case Construction section below for details. Similar to Form 1 it is possible to pass parameters to the source, if the source is a method. Form 3 - [TestCaseSource(Type sourceType)] public class TestFixtureThatUsesClassAsTestCaseSource { [TestCaseSource(typeof(DivideCasesClass))] public void DivideTest(int n, int d, int q) { ClassicAssert.AreEqual(q, n / d); } } public class DivideCasesClass : 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 }; } } The Type argument in this form represents the class that provides test cases. It must have a default constructor and implement IEnumerable. The enumerator should return test case data compatible with the signature of the test on which the attribute appears. See the Test Case Construction section below for details. Note that it is not possible to pass parameters to the source, even if the source is a method. Sources with expected result using TestCaseData As of NUnit 3.12, it is possible to use a typed source with an expected result. This is done by using the TestCaseSource attribute on a method that returns a TestCaseData object. The TestCaseData object can be constructed with the expected result as a parameter. [TestFixture] public class MyTests { [TestCaseSource(typeof(MyDataClass), nameof(MyDataClass.TestCases))] public int DivideTest(int n, int d) { return n / d; } } public class MyDataClass { public static IEnumerable TestCases { get { yield return new TestCaseData(12, 3).Returns(4); yield return new TestCaseData(12, 2).Returns(6); yield return new TestCaseData(12, 4).Returns(3); } } } See TestCaseData for more information on the TestCaseData class. Examples using TestCaseSource with Typed data and expected results It may seem from the examples above that TestCaseSource can only be used with simple data types or the base Object type. This is not the case. TestCaseSource can be used with typed data and also including expected results, also without using TestCaseData. In the example below the test method takes a single argument of a an anonymous tuple type with Person and an expected value of type bool. It can of course be any type, if that makes sense for the test. The TestCaseSource method returns an IEnumerable<> of the anonymous tuple type. public class TypedValuesWithExpectedAsAnonymousTuple { [TestCaseSource(nameof(TestCases))] public void TestOfPersonAge((Person P, bool Expected) td) { var res = td.P.IsOldEnoughToBuyAlcohol(); Assert.That(res, Is.EqualTo(td.Expected)); } public static IEnumerable<(Person, bool)> TestCases() { yield return (new Person { Name = \"John\", Age = 10 }, false); yield return (new Person { Name = \"Jane\", Age = 30 }, true); } } public class Person { public string Name { get; set; } = \"\"; public int Age { get; set; } public bool IsOldEnoughToBuyAlcohol() { return Age >= 18; } } It is also possible to use a generic wrapper (or any custom wrapper) for the testcase data and the expected result, as shown in the example below. public class TypedValuesWithExpectedInWrapperClass { [TestCaseSource(nameof(TestCases))] public void TestOfPersonAge(TestDataWrapper td) { var res = td.Value?.IsOldEnoughToBuyAlcohol(); Assert.That(res, Is.EqualTo(td.Expected)); } public static IEnumerable> TestCases() { yield return new TestDataWrapper { Value = new Person { Name = \"John\", Age = 10 }, Expected = false }; yield return new TestDataWrapper { Value = new Person { Name = \"Jane\", Age = 30 }, Expected = true }; } } public class TestDataWrapper { public T? Value { get; set; } public TExp? Expected { get; set; } } Named Parameters TestCaseSourceAttribute supports one named parameter: Category is used to assign one or more categories to every test case returned from this source. Test Case Construction In constructing tests, NUnit uses each item returned by the enumerator as follows: If it is an object derived from the TestCaseParameters class, its properties are used to provide the test case. NUnit provides the TestCaseData type for this purpose. If the test has a single argument and the returned value matches the type of that argument it is used directly. This can eliminate a bit of extra typing by the programmer, as in this example: private static int[] _evenNumbers = { 2, 4, 6, 8 }; [Test, TestCaseSource(nameof(_evenNumbers))] public void TestMethod(int num) { Assert.That(num % 2, Is.Zero); } If it is an object[], its members are used to provide the arguments for the method. This is the approach taken in the three first examples above. If it is an array of some other type, NUnit can use it provided that the arguments to the method are all of that type. For example, the above examples could be modified to make the three nested arrays of type int[]. If anything else is returned, it is used directly as the sole argument to the method. Because every returned value is used, NUnit is able to give an error message in cases where the method requires a different number of arguments or an argument of a different type. Notes It is recommended that the SourceType not be the same as the test fixture class. It may be a nested class, however, and probably should be if the data is only used within that fixture. A generic IEnumerable and IEnumerator may be used but NUnit will actually deal with the underlying IEnumerator in the current release. The GetEnumerator method may use yield statements or simply return the enumerator for an array or other collection held by the class. Order of Execution Individual test cases are executed in the order in which NUnit discovers them. This order does not follow the lexical order of the attributes and will often vary between different compilers or different versions of the CLR. As a result, when TestCaseSourceAttribute appears multiple times on a method or when other data-providing attributes are used in combination with TestCaseSourceAttribute, the order of the test cases is undefined. However, when a single TestCaseSourceAttribute is used by itself, the order of the tests follows exactly the order in which the test cases are returned from the source. Object Construction NUnit locates the test cases at the time the tests are loaded. It creates instances of each class used with the third form of the attribute and builds a list of tests to be executed. Each data source class is only created once at this time and is destroyed after all tests are loaded. By design, no communication is possible between the load and execution phases except through the tests that are created." + "keywords": "TestCaseSource TestCaseSourceAttribute is used on a parameterized test method to identify the source from which the required arguments will be provided. The attribute additionally identifies the method as a test method. The data is kept separate from the test itself and may be used by multiple test methods. See Parameterized Tests for a general introduction to tests with arguments. Usage Consider a test of the divide operation, taking three arguments: the numerator, the denominator and the expected result. We can specify the test and its data using one of the forms of TestCaseSourceAttribute: Form 1 - [TestCaseSource(string sourceName)] Note We use the nameof operator to avoid introducing magic strings into code, which offers better resilience when refactoring. While nameof is recommended, you could also use the string \"DivideCases\" to achieve the same outcome. public class BasicTestCaseSourceFixture { [TestCaseSource(nameof(DivideCases))] public void DivideTest(int n, int d, int q) { ClassicAssert.AreEqual(q, n / d); } public static object[] DivideCases = { new object[] { 12, 3, 4 }, new object[] { 12, 2, 6 }, new object[] { 12, 4, 3 } }; } The single attribute argument in this form is a string representing the name of the source used to provide test cases. It has the following characteristics: It may be a field, property or method in the test class. It must be static. This is a change from NUnit 2.x. It must return an IEnumerable or a type that implements IEnumerable. For fields an array is generally used. For properties and methods, you may return an array or implement your own iterator. Methods may also return an IAsyncEnumerable or a type that implements IAsyncEnumerable. (NUnit 4+) Methods may be async by wrapping the return type in a Task. (NUnit 3.14+) The individual items returned by the enumerator must be compatible with the signature of the method on which the attribute appears. See the Test Case Construction section below for details. Sometimes we would like to parameterize the source, e.g. if we use the same source for multiple tests, to this end it is possible to pass parameters to the source, if the source is a method. The parameters are specified as an array of parameters that are passed to the source method. public class ParameterizedSourceExampleFixture { [TestCaseSource(nameof(TestStrings), new object[] { true })] public void LongNameWithEvenNumberOfCharacters(string name) { Assert.That(name.Length, Is.GreaterThan(5)); bool hasEvenNumOfCharacters = (name.Length % 2) == 0; Assert.That(hasEvenNumOfCharacters, Is.True); } [TestCaseSource(nameof(TestStrings), new object[] { false })] public void ShortNameWithEvenNumberOfCharacters(string name) { Assert.That(name.Length, Is.LessThan(15)); bool hasEvenNumOfCharacters = (name.Length % 2) == 0; Assert.That(hasEvenNumOfCharacters, Is.True); } static IEnumerable TestStrings(bool generateLongTestCase) { if (generateLongTestCase) { yield return \"ThisIsAVeryLongNameThisIsAVeryLongName\"; yield return \"SomeName\"; yield return \"YetAnotherName\"; } else { yield return \"AA\"; yield return \"BB\"; yield return \"CC\"; } } } Form 2 - [TestCaseSource(Type sourceType, string sourceName)] public class TestFixtureThatUsesClassMethodAsTestCaseSource { [TestCaseSource(typeof(AnotherClassWithTestFixtures), nameof(AnotherClassWithTestFixtures.DivideCases))] public void DivideTest(int n, int d, int q) { ClassicAssert.AreEqual(q, n / d); } } public class AnotherClassWithTestFixtures { public static object[] DivideCases = { new object[] { 12, 3, 4 }, new object[] { 12, 2, 6 }, new object[] { 12, 4, 3 } }; } The first argument of the attribute in this form is a Type representing the class that will provide the test cases. The second argument is a string representing the name of the source used to provide test cases. It has the following characteristics: It may be a field, property or method in the test class. It must be static. This is a change from NUnit 2.x. It must return an IEnumerable or a type that implements IEnumerable. For fields an array is generally used. For properties and methods, you may return an array or implement your own iterator. Methods may also return an IAsyncEnumerable or a type that implements IAsyncEnumerable. (NUnit 4+) Methods may be async by wrapping the return type in a Task. (NUnit 3.14+) The individual items returned by the enumerator must be compatible with the signature of the method on which the attribute appears. See the Test Case Construction section below for details. Similar to Form 1 it is possible to pass parameters to the source, if the source is a method. Form 3 - [TestCaseSource(Type sourceType)] public class TestFixtureThatUsesClassAsTestCaseSource { [TestCaseSource(typeof(DivideCasesClass))] public void DivideTest(int n, int d, int q) { ClassicAssert.AreEqual(q, n / d); } } public class DivideCasesClass : 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 }; } } The Type argument in this form represents the class that provides test cases. It must have a default constructor and implement IEnumerable. The enumerator should return test case data compatible with the signature of the test on which the attribute appears. See the Test Case Construction section below for details. Note that it is not possible to pass parameters to the source, even if the source is a method. Sources with expected result using TestCaseData As of NUnit 3.12, it is possible to use a typed source with an expected result. This is done by using the TestCaseSource attribute on a method that returns a TestCaseData object. The TestCaseData object can be constructed with the expected result as a parameter. [TestFixture] public class MyTests { [TestCaseSource(typeof(MyDataClass), nameof(MyDataClass.TestCases))] public int DivideTest(int n, int d) { return n / d; } } public class MyDataClass { public static IEnumerable TestCases { get { yield return new TestCaseData(12, 3).Returns(4); yield return new TestCaseData(12, 2).Returns(6); yield return new TestCaseData(12, 4).Returns(3); } } } See TestCaseData for more information on the TestCaseData class. Examples using TestCaseSource with Typed data and expected results It may seem from the examples above that TestCaseSource can only be used with simple data types or the base Object type. This is not the case. TestCaseSource can be used with typed data and also including expected results, also without using TestCaseData. In the example below the test method takes a single argument of a an anonymous tuple type with Person and an expected value of type bool. It can of course be any type, if that makes sense for the test. The TestCaseSource method returns an IEnumerable<> of the anonymous tuple type. public class TypedValuesWithExpectedAsAnonymousTuple { [TestCaseSource(nameof(TestCases))] public void TestOfPersonAge((Person P, bool Expected) td) { var res = td.P.IsOldEnoughToBuyAlcohol(); Assert.That(res, Is.EqualTo(td.Expected)); } public static IEnumerable<(Person, bool)> TestCases() { yield return (new Person { Name = \"John\", Age = 10 }, false); yield return (new Person { Name = \"Jane\", Age = 30 }, true); } } public class Person { public string Name { get; set; } = \"\"; public int Age { get; set; } public bool IsOldEnoughToBuyAlcohol() { return Age >= 18; } } It is also possible to use a generic wrapper (or any custom wrapper) for the testcase data and the expected result, as shown in the example below. public class TypedValuesWithExpectedInWrapperClass { [TestCaseSource(nameof(TestCases))] public void TestOfPersonAge(TestDataWrapper td) { var res = td.Value?.IsOldEnoughToBuyAlcohol(); Assert.That(res, Is.EqualTo(td.Expected)); } public static IEnumerable> TestCases() { yield return new TestDataWrapper { Value = new Person { Name = \"John\", Age = 10 }, Expected = false }; yield return new TestDataWrapper { Value = new Person { Name = \"Jane\", Age = 30 }, Expected = true }; } } public class TestDataWrapper { public T? Value { get; set; } public TExp? Expected { get; set; } } Named Parameters TestCaseSourceAttribute supports one named parameter: Category is used to assign one or more categories to every test case returned from this source. Test Case Construction In constructing tests, NUnit uses each item returned by the enumerator as follows: If it is an object derived from the TestCaseParameters class, its properties are used to provide the test case. NUnit provides the TestCaseData type for this purpose. If the test has a single argument and the returned value matches the type of that argument it is used directly. This can eliminate a bit of extra typing by the programmer, as in this example: private static int[] _evenNumbers = { 2, 4, 6, 8 }; [Test, TestCaseSource(nameof(_evenNumbers))] public void TestMethod(int num) { Assert.That(num % 2, Is.Zero); } If it is an object[], its members are used to provide the arguments for the method. This is the approach taken in the three first examples above. If it is an array of some other type, NUnit can use it provided that the arguments to the method are all of that type. For example, the above examples could be modified to make the three nested arrays of type int[]. If anything else is returned, it is used directly as the sole argument to the method. Because every returned value is used, NUnit is able to give an error message in cases where the method requires a different number of arguments or an argument of a different type. Notes It is recommended that the SourceType not be the same as the test fixture class. It may be a nested class, however, and probably should be if the data is only used within that fixture. A generic IEnumerable and IEnumerator may be used but NUnit will actually deal with the underlying IEnumerator in the current release. The GetEnumerator method may use yield statements or simply return the enumerator for an array or other collection held by the class. Order of Execution Individual test cases are executed in the order in which NUnit discovers them. This order does not follow the lexical order of the attributes and will often vary between different compilers or different versions of the CLR. As a result, when TestCaseSourceAttribute appears multiple times on a method or when other data-providing attributes are used in combination with TestCaseSourceAttribute, the order of the test cases is undefined. However, when a single TestCaseSourceAttribute is used by itself, the order of the tests follows exactly the order in which the test cases are returned from the source. Object Construction NUnit locates the test cases at the time the tests are loaded. It creates instances of each class used with the third form of the attribute and builds a list of tests to be executed. Each data source class is only created once at this time and is destroyed after all tests are loaded. By design, no communication is possible between the load and execution phases except through the tests that are created." }, "articles/nunit/writing-tests/attributes/testfixture.html": { "href": "articles/nunit/writing-tests/attributes/testfixture.html", @@ -1382,7 +1382,7 @@ "articles/nunit/writing-tests/attributes/testfixturesource.html": { "href": "articles/nunit/writing-tests/attributes/testfixturesource.html", "title": "TestFixtureSource | NUnit Docs", - "keywords": "TestFixtureSource TestFixtureSourceAttribute is used on a parameterized fixture to identify the source from which the required constructor arguments will be provided. The data is kept separate from the fixture itself and may be used by multiple fixtures. See Parameterized Tests for a general introduction to tests with arguments. Usage Consider a test fixture class taking two parameters in its constructor, a string and an int. We can specify the test and its data using one of the forms of TestFixtureSourceAttribute: Form 1 - [TestFixtureSource(string sourceName)] [TestFixtureSource(nameof(FixtureArgs))] public class MyTestClass { public MyTestClass(string word, int num) { ... } /* ... */ static object [] FixtureArgs = { new object[] { \"Question\", 1 }, new object[] { \"Answer\", 42 } }; } The single attribute argument in this form is a string representing the name of the source used to provide arguments for constructing the TestFixture. It has the following characteristics: It may be a field, property or method in the test class. It must be static. It must return an IEnumerable or a type that implements IEnumerable. For fields an array is generally used. For properties and methods, you may return an array or implement your own iterator. The individual items returned by the enumerator must either be object arrays or derive from the TestFixtureParameters class. Arguments must be consistent with the fixture constructor. Form 2 - [TestFixtureSource(Type sourceType, string sourceName)] [TestFixtureSource(typeof(AnotherClass), nameof(AnotherClass.FixtureArgs)] public class MyTestClass { public MyTestClass(string word, int num) { ... } ... } class AnotherClass { static object [] FixtureArgs = { new object[] { \"Question\", 1 }, new object[] { \"Answer\", 42 } }; } The first argument of the attribute in this form is a Type representing the class that will provide the test fixture data. The second argument is a string representing the name of the source used to provide test fixtures. It has the following characteristics: It may be a field, property or method in the test class. It must be static. It must return an IEnumerable or a type that implements IEnumerable. For fields an array is generally used. For properties and methods, you may return an array or implement your own iterator. The individual items returned by the enumerator must either be object arrays or derive from the TestFixtureParameters class. Arguments must be consistent with the fixture constructor. Form 3 - [TestFixtureSource(Type sourceType)] [TestFixtureSource(typeof(FixtureArgs))] public class MyTestClass { public MyTestClass(string word, int num) { /* ... */ } /* ... */ } class FixtureArgs: IEnumerable { public IEnumerator GetEnumerator() { yield return new object[] { \"Question\", 1 }; yield return new object[] { \"Answer\", 42 }; } } The Type argument in this form represents the class that provides test cases. It must have a default constructor and implement IEnumerable. The individual items returned by the enumerator must either be object arrays or derive from the TestFixtureParameters class. Arguments must be consistent with the fixture constructor. Named Parameters TestCaseSourceAttribute supports one named parameter: Category is used to assign one or more categories to every test case returned from this source. Test Case Construction In constructing tests, NUnit uses each item returned by the enumerator as follows: If it is an object deriving from TestFixtureParameters, its properties are used to provide the test case. NUnit provides the TestFixtureData class for this purpose. If it is an object[], its members are used to provide the arguments for the method. This is the approach taken in the examples above. Notes It is recommended that the SourceType not be the same as the test fixture class. It may be a nested class, however, and probably should be if the data is only used within that fixture. A generic IEnumerable and IEnumerator may be used but NUnit will actually deal with the underlying IEnumerator in the current release. The GetEnumerator method may use yield statements or simply return the enumerator for an array or other collection held by the class." + "keywords": "TestFixtureSource TestFixtureSourceAttribute is used on a parameterized fixture to identify the source from which the required constructor arguments will be provided. The data is kept separate from the fixture itself and may be used by multiple fixtures. See Parameterized Tests for a general introduction to tests with arguments. Usage Consider a test fixture class taking two parameters in its constructor, a string and an int. We can specify the test and its data using one of the forms of TestFixtureSourceAttribute: Form 1 - [TestFixtureSource(string sourceName)] [TestFixtureSource(nameof(FixtureArgs))] public class MyTestClass { public MyTestClass(string word, int num) { ... } /* ... */ static object [] FixtureArgs = { new object[] { \"Question\", 1 }, new object[] { \"Answer\", 42 } }; } The single attribute argument in this form is a string representing the name of the source used to provide arguments for constructing the TestFixture. It has the following characteristics: It may be a field, property or method in the test class. It must be static. It must return an IEnumerable or a type that implements IEnumerable. For fields an array is generally used. For properties and methods, you may return an array or implement your own iterator. Methods may also return an IAsyncEnumerable or a type that implements IAsyncEnumerable. (NUnit 4+) Methods may be async by wrapping the return type in a Task. (NUnit 3.14+) The individual items returned by the enumerator must either be object arrays or derive from the TestFixtureParameters class. Arguments must be consistent with the fixture constructor. Form 2 - [TestFixtureSource(Type sourceType, string sourceName)] [TestFixtureSource(typeof(AnotherClass), nameof(AnotherClass.FixtureArgs)] public class MyTestClass { public MyTestClass(string word, int num) { ... } ... } class AnotherClass { static object [] FixtureArgs = { new object[] { \"Question\", 1 }, new object[] { \"Answer\", 42 } }; } The first argument of the attribute in this form is a Type representing the class that will provide the test fixture data. The second argument is a string representing the name of the source used to provide test fixtures. It has the following characteristics: It may be a field, property or method in the test class. It must be static. It must return an IEnumerable or a type that implements IEnumerable. For fields an array is generally used. For properties and methods, you may return an array or implement your own iterator. Methods may also return an IAsyncEnumerable or a type that implements IAsyncEnumerable. (NUnit 4+) Methods may be async by wrapping the return type in a Task. (NUnit 3.14+) The individual items returned by the enumerator must either be object arrays or derive from the TestFixtureParameters class. Arguments must be consistent with the fixture constructor. Form 3 - [TestFixtureSource(Type sourceType)] [TestFixtureSource(typeof(FixtureArgs))] public class MyTestClass { public MyTestClass(string word, int num) { /* ... */ } /* ... */ } class FixtureArgs: IEnumerable { public IEnumerator GetEnumerator() { yield return new object[] { \"Question\", 1 }; yield return new object[] { \"Answer\", 42 }; } } The Type argument in this form represents the class that provides test cases. It must have a default constructor and implement IEnumerable. The individual items returned by the enumerator must either be object arrays or derive from the TestFixtureParameters class. Arguments must be consistent with the fixture constructor. Named Parameters TestCaseSourceAttribute supports one named parameter: Category is used to assign one or more categories to every test case returned from this source. Test Case Construction In constructing tests, NUnit uses each item returned by the enumerator as follows: If it is an object deriving from TestFixtureParameters, its properties are used to provide the test case. NUnit provides the TestFixtureData class for this purpose. If it is an object[], its members are used to provide the arguments for the method. This is the approach taken in the examples above. Notes It is recommended that the SourceType not be the same as the test fixture class. It may be a nested class, however, and probably should be if the data is only used within that fixture. A generic IEnumerable and IEnumerator may be used but NUnit will actually deal with the underlying IEnumerator in the current release. The GetEnumerator method may use yield statements or simply return the enumerator for an array or other collection held by the class." }, "articles/nunit/writing-tests/attributes/testfixtureteardown.html": { "href": "articles/nunit/writing-tests/attributes/testfixtureteardown.html", @@ -1412,7 +1412,7 @@ "articles/nunit/writing-tests/attributes/valuesource.html": { "href": "articles/nunit/writing-tests/attributes/valuesource.html", "title": "ValueSource | NUnit Docs", - "keywords": "ValueSource ValueSourceAttribute is used on individual parameters of a test method to identify a named source for the argument values to be supplied. The attribute has two public constructors. ValueSourceAttribute(Type sourceType, string sourceName); ValueSourceAttribute(string sourceName); If sourceType is specified, it represents the class that provides the data. If sourceType is not specified, the class containing the test method is used. The sourceName, represents the name of the source that will provide the arguments. It should have the following characteristics: It may be a field, a non-indexed property or a method taking no arguments. It must be a static member. It must return an IEnumerable or a type that implements IEnumerable. The individual items returned from the enumerator must be compatible with the type of the parameter on which the attribute appears. Order of Execution Individual test cases are executed in the order in which NUnit discovers them. This order does not follow the lexical order of the attributes and will often vary between different compilers or different versions of the CLR. As a result, when ValueSourceAttribute appears multiple times on a parameter or when other data-providing attributes are used in combination with ValueSourceAttribute, the order of the arguments is undefined. However, when a single ValueSourceAttribute is used by itself, the order of the arguments follows exactly the order in which the data is returned from the source. Note on Object Construction NUnit locates the test cases at the time the tests are loaded, creates instances of each class with non-static sources and builds a list of tests to be executed. Each source object is only created once at this time and is destroyed after all tests are loaded. If the data source is in the test fixture itself, the object is created using the appropriate constructor for the fixture parameters provided on the TestFixtureAttribute, or the default constructor if no parameters were specified. Since this object is destroyed before the tests are run, no communication is possible between these two phases - or between different runs - except through the parameters themselves." + "keywords": "ValueSource ValueSourceAttribute is used on individual parameters of a test method to identify a named source for the argument values to be supplied. The attribute has two public constructors. ValueSourceAttribute(Type sourceType, string sourceName); ValueSourceAttribute(string sourceName); If sourceType is specified, it represents the class that provides the data. If sourceType is not specified, the class containing the test method is used. The sourceName, represents the name of the source that will provide the arguments. It should have the following characteristics: It may be a field, a non-indexed property or a method taking no arguments. It must be a static member. It must return an IEnumerable or a type that implements IEnumerable. Methods may also return an IAsyncEnumerable or a type that implements IAsyncEnumerable. (NUnit 4+) Methods may be async by wrapping the return type in a Task. (NUnit 3.14+) The individual items returned from the enumerator must be compatible with the type of the parameter on which the attribute appears. Order of Execution Individual test cases are executed in the order in which NUnit discovers them. This order does not follow the lexical order of the attributes and will often vary between different compilers or different versions of the CLR. As a result, when ValueSourceAttribute appears multiple times on a parameter or when other data-providing attributes are used in combination with ValueSourceAttribute, the order of the arguments is undefined. However, when a single ValueSourceAttribute is used by itself, the order of the arguments follows exactly the order in which the data is returned from the source. Note on Object Construction NUnit locates the test cases at the time the tests are loaded, creates instances of each class with non-static sources and builds a list of tests to be executed. Each source object is only created once at this time and is destroyed after all tests are loaded. If the data source is in the test fixture itself, the object is created using the appropriate constructor for the fixture parameters provided on the TestFixtureAttribute, or the default constructor if no parameters were specified. Since this object is destroyed before the tests are run, no communication is possible between these two phases - or between different runs - except through the parameters themselves." }, "articles/nunit/writing-tests/constraints/AllItemsConstraint.html": { "href": "articles/nunit/writing-tests/constraints/AllItemsConstraint.html", diff --git a/sitemap.xml b/sitemap.xml index ac97fc2a0..e779f526e 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -2,2155 +2,2155 @@ http://docs.nunit.org/404.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/developer-info/Best-practices-for-XML-documentation.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/developer-info/Coding-Standards.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/developer-info/Contributions.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/developer-info/Issue-Tracking.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/developer-info/Notes-Toward-NUnit-4.0.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/developer-info/Packaging-Extensions.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/developer-info/Packaging-the-Console-and-Engine.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/developer-info/Packaging-the-Framework.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/developer-info/Packaging-the-Installer.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/developer-info/Packaging-the-V2-Adapter.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/developer-info/Packaging-the-V3-and-V4-Adapter.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/developer-info/Team-Practices.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/developer-info/The-Teams.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/legacy/index.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit-Analyzers.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1001.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1002.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1003.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1004.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1005.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1006.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1007.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1008.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1009.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1010.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1011.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1012.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1013.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1014.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1015.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1016.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1017.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1018.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1019.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1020.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1021.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1022.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1023.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1024.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1025.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1026.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1027.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1028.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1029.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1030.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1031.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit1032.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2001.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2002.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2003.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2004.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2005.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2006.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2007.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2008.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2009.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2010.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2011.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2012.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2013.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2014.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2015.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2016.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2017.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2018.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2019.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2020.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2021.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2022.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2023.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2024.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2025.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2026.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2027.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2028.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2029.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2030.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2031.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2032.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2033.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2034.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2035.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2036.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2037.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2038.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2039.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2040.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2041.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2042.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2043.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2044.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2045.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2046.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit2047.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit3001.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit3002.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit3003.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-analyzers/NUnit3004.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-engine/Getting-Started.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-engine/Index.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-engine/Test-Engine-API.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-engine/extensions/AvailableExtensions.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-engine/extensions/Index.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-engine/extensions/Installing-Extensions.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-engine/extensions/creating-extensions/Event-Listeners.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-engine/extensions/creating-extensions/Framework-Drivers.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-engine/extensions/creating-extensions/Index.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-engine/extensions/creating-extensions/Project-Loaders.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-engine/extensions/creating-extensions/Result-Writers.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-engine/extensions/creating-extensions/Writing-Engine-Extensions.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit-engine/release-notes.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/Towards-NUnit4.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/extending-nunit/Action-Attributes.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/extending-nunit/Custom-Attributes.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/extending-nunit/Custom-Constraints.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/extending-nunit/Framework-Extensibility.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/extending-nunit/IApplyToContext-Interface.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/extending-nunit/IApplyToTest-Interface.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/extending-nunit/ICommandWrapper-Interface.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/extending-nunit/IFixtureBuilder-Interface.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/extending-nunit/IImplyFixture-Interface.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/extending-nunit/IParameterDataSource-Interface.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/extending-nunit/ISimpleTestBuilder-Interface.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/extending-nunit/ITestBuilder-Interface.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/extending-nunit/Index.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/getting-started/dotnet-core-and-dotnet-standard.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/getting-started/installation.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/getting-started/samples.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/getting-started/upgrading.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/intro.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/license.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/release-notes/Nunit4.0-MigrationGuide.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/release-notes/Pre-3.5-Release-Notes.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/release-notes/breaking-changes.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/release-notes/framework.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/running-tests/Console-Command-Line.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/running-tests/Console-Runner.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/running-tests/Index.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/running-tests/NUnit-Test-Projects.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/running-tests/NUnitLite-Options.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/running-tests/NUnitLite-Runner.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/running-tests/Template-Based-Test-Naming.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/running-tests/Test-Selection-Language.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/nunit-internals/Active-Attributes.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/nunit-internals/Architectural-Overview.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/nunit-internals/Attribute-Hierarchy.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/nunit-internals/Framework-Api.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/nunit-internals/Framework-Design.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/nunit-internals/NUnit-3.0-Architecture-(2009).html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/nunit-internals/NUnit-APIs.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/nunit-internals/NUnit-Internals.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/nunit-internals/Test-Discovery-And-Execution.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/nunit-internals/specs/Dynamic-Test-Cases-Spec.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/nunit-internals/specs/Engine-Addins-Spec.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/nunit-internals/specs/Extended-Constraint-Syntax-Spec.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/nunit-internals/specs/Include%20and%20Exclude%20Attributes%20(Alternatives).html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/nunit-internals/specs/Include-and-Exclude-Attributes-Spec.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/nunit-internals/specs/Internal-Trace-Spec.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/nunit-internals/specs/Parameterized-Test-Fixtures-Spec.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/nunit-internals/specs/Specifications.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/nunit-internals/specs/Test-Dependency-Attribute-Spec.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/usage/Addin-Replacement-in-the-Framework.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/usage/Assembly-Isolation.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/usage/Configuration-Files.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/usage/Counting-Tests.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/usage/Engine-Parallel-Test-Execution.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/usage/Framework-Parallel-Test-Execution.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/usage/NUnit-Project-XML-Format.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/usage/Parameterized-Tests.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/usage/Platform-Selection.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/usage/Runtime-Selection.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/usage/SetUp-and-TearDown.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/usage/Test-Filters.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/usage/Test-Result-XML-Format.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/usage/Usage-Notes.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/usage/Visual-Studio-Support.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/technical-notes/usage/XML-Formats.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/AssertionHelper.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/Assumptions.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/ListMapper.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/Randomizer-Methods.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/TestCaseData.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/TestContext.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/TestFixtureData.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/Warnings.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/assertion-models/classic.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/assertion-models/constraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/assertion-models/special.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/assertions.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.AreEqual.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.AreNotEqual.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.AreNotSame.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.AreSame.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.Catch.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.CatchAsync.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.Contains.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.DoesNotThrow.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.DoesNotThrowAsync.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.False.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.Greater.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.GreaterOrEqual.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.IsAssignableFrom.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.IsEmpty.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.IsInstanceOf.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.IsNaN.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.IsNotAssignableFrom.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.IsNotEmpty.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.IsNotInstanceOf.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.Less.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.LessOrEqual.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.Negative.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.NotNull.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.NotZero.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.Null.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.Positive.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.Throws.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.ThrowsAsync.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.True.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Assert.Zero.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Collection-Assert.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/Directory-Assert.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/File-Assert.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/classic-assertions/String-Assert.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/multiple-asserts.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/special-assertions/Assert.Fail.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/special-assertions/Assert.Ignore.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/special-assertions/Assert.Inconclusive.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/assertions/special-assertions/Assert.Pass.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/apartment.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/author.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/cancelafter.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/category.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/combinatorial.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/culture.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/datapoint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/datapointsource.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/defaultfloatingpointtolerance.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/description.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/explicit.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/fixturelifecycle.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/ignore.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/levelofparallelism.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/maxtime.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/nonparallelizable.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/nontestassembly.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/onetimesetup.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/onetimeteardown.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/order.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/pairwise.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/parallelizable.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/platform.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/property.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/random.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/range.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/repeat.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/requiresthread.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/retry.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/sequential.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/setculture.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/setuiculture.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/setup.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/setupfixture.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/singlethreaded.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/teardown.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/test.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/testcase.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/testcasesource.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/testfixture.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/testfixturesetup.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/testfixturesource.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/testfixtureteardown.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/testof.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/theory.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/timeout.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/values.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/attributes/valuesource.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/AllItemsConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/AndConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/AnyOfConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/AssignableFromConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/AssignableToConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/AttributeConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/AttributeExistsConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/BinarySerializableConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/CollectionContainsConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/CollectionEquivalentConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/CollectionOrderedConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/CollectionSubsetConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/CollectionSupersetConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/Constraints.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/DelayedConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/DictionaryContainsKeyConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/DictionaryContainsKeyValuePairConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/DictionaryContainsValueConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/EmptyCollectionConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/EmptyConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/EmptyDirectoryConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/EmptyStringConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/EndsWithConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/EqualConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/ExactCountConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/ExactTypeConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/FalseConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/FileOrDirectoryExistsConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/GreaterThanConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/GreaterThanOrEqualConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/InstanceOfTypeConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/LessThanConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/LessThanOrEqualConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/NaNConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/NoItemConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/NotConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/NullConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/OrConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/PropertyConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/PropertyExistsConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/RangeConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/RegexConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/ReusableConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/SameAsConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/SamePathConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/SamePathOrUnderConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/SomeItemsConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/StartsWithConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/SubPathConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/SubstringConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/ThrowsConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/ThrowsNothingConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/TrueConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/UniqueItemsConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/constraints/XmlSerializableConstraint.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/setup-teardown/SetUp-and-TearDown-Changes.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/nunit/writing-tests/setup-teardown/index.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/vs-test-adapter/Adapter-Engine-Compatibility.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/vs-test-adapter/Adapter-Installation.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/vs-test-adapter/Adapter-License.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/vs-test-adapter/Adapter-Source-Stepping.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/vs-test-adapter/AdapterV2-Release-Notes.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/vs-test-adapter/AdapterV3-Release-Notes.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/vs-test-adapter/AdapterV4-Release-Notes.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/vs-test-adapter/Debugging.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/vs-test-adapter/Index.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/vs-test-adapter/Known-Problems.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/vs-test-adapter/Resources.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/vs-test-adapter/Supported-Frameworks.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/vs-test-adapter/Tips-And-Tricks.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/vs-test-adapter/Trace-and-Debug.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/vs-test-adapter/Usage.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/vs-test-generator/TestGenerator-Installation.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/vs-test-generator/TestGenerator-Release-Notes-VS2015.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/vs-test-generator/TestGenerator-Release-Notes-VS2017-VS2019.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/vs-test-generator/TestGenerator-Release-Notes.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/vs-test-generator/Visual-Studio-Test-Generator.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/xamarin-runners/Getting-Started-in-Visual-Studio-for-Mac.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/xamarin-runners/Getting-Started-in-Visual-Studio.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/articles/xamarin-runners/index.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5 http://docs.nunit.org/index.html - 2023-11-09T02:24:13+00:00 + 2023-11-11T04:19:34+00:00 daily 0.5