nunit 2.5.0.9122 → 2.5.1.9189

Sign up to get free protection for your applications and to get access to all the features.
Files changed (177) hide show
  1. data/docs/addinsDialog.html +1 -1
  2. data/docs/assertions.html +1 -1
  3. data/docs/attributes.html +58 -58
  4. data/docs/category.html +1 -1
  5. data/docs/collectionAssert.html +1 -1
  6. data/docs/collectionConstraints.html +1 -1
  7. data/docs/combinatorial.html +3 -3
  8. data/docs/comparisonAsserts.html +1 -1
  9. data/docs/comparisonConstraints.html +1 -1
  10. data/docs/compoundConstraints.html +1 -1
  11. data/docs/conditionAsserts.html +1 -1
  12. data/docs/conditionConstraints.html +1 -1
  13. data/docs/configEditor.html +1 -1
  14. data/docs/configFiles.html +1 -1
  15. data/docs/consoleCommandLine.html +11 -5
  16. data/docs/constraintModel.html +1 -1
  17. data/docs/contextMenu.html +1 -1
  18. data/docs/culture.html +1 -1
  19. data/docs/customConstraints.html +24 -24
  20. data/docs/datapoint.html +1 -1
  21. data/docs/datapointProviders.html +29 -5
  22. data/docs/delayedConstraint.html +1 -1
  23. data/docs/description.html +1 -1
  24. data/docs/directoryAssert.html +1 -1
  25. data/docs/equalConstraint.html +1 -1
  26. data/docs/equalityAsserts.html +1 -1
  27. data/docs/eventListeners.html +1 -1
  28. data/docs/exception.html +56 -56
  29. data/docs/exceptionAsserts.html +5 -5
  30. data/docs/explicit.html +1 -1
  31. data/docs/extensibility.html +1 -1
  32. data/docs/extensionTips.html +1 -1
  33. data/docs/fileAssert.html +1 -1
  34. data/docs/fixtureSetup.html +1 -1
  35. data/docs/fixtureTeardown.html +1 -1
  36. data/docs/getStarted.html +1 -1
  37. data/docs/guiCommandLine.html +1 -1
  38. data/docs/identityAsserts.html +1 -1
  39. data/docs/ignore.html +1 -1
  40. data/docs/img/generalSettings.jpg +0 -0
  41. data/docs/img/gui-screenshot.jpg +0 -0
  42. data/docs/img/gui-verify.jpg +0 -0
  43. data/docs/img/miniGui.jpg +0 -0
  44. data/docs/index.html +3 -3
  45. data/docs/installation.html +2 -2
  46. data/docs/license.html +3 -3
  47. data/docs/listMapper.html +1 -1
  48. data/docs/mainMenu.html +1 -1
  49. data/docs/maxtime.html +1 -1
  50. data/docs/multiAssembly.html +1 -1
  51. data/docs/nunit-console.html +1 -1
  52. data/docs/nunit-gui.html +1 -1
  53. data/docs/nunitAddins.html +1 -1
  54. data/docs/pairwise.html +1 -1
  55. data/docs/parameterizedTests.html +20 -1
  56. data/docs/pathConstraints.html +1 -1
  57. data/docs/platform.html +1 -1
  58. data/docs/pnunit.html +1 -1
  59. data/docs/projectEditor.html +1 -1
  60. data/docs/property.html +1 -1
  61. data/docs/propertyConstraint.html +1 -1
  62. data/docs/quickStart.html +1 -1
  63. data/docs/random.html +1 -1
  64. data/docs/range.html +1 -1
  65. data/docs/releaseNotes.html +824 -411
  66. data/docs/repeat.html +1 -1
  67. data/docs/requiredAddin.html +1 -1
  68. data/docs/requiresMTA.html +1 -1
  69. data/docs/requiresSTA.html +1 -1
  70. data/docs/requiresThread.html +1 -1
  71. data/docs/sameasConstraint.html +1 -1
  72. data/docs/samples.html +1 -1
  73. data/docs/sequential.html +1 -1
  74. data/docs/setCulture.html +1 -1
  75. data/docs/settingsDialog.html +7 -1
  76. data/docs/setup.html +1 -1
  77. data/docs/setupFixture.html +1 -1
  78. data/docs/stringAssert.html +1 -1
  79. data/docs/stringConstraints.html +154 -23
  80. data/docs/suite.html +1 -1
  81. data/docs/suiteBuilders.html +1 -1
  82. data/docs/teardown.html +1 -1
  83. data/docs/test.html +1 -1
  84. data/docs/testCase.html +56 -56
  85. data/docs/testCaseSource.html +24 -11
  86. data/docs/testDecorators.html +1 -1
  87. data/docs/testFixture.html +11 -11
  88. data/docs/testProperties.html +1 -1
  89. data/docs/testcaseBuilders.html +1 -1
  90. data/docs/testcaseProviders.html +28 -5
  91. data/docs/theory.html +1 -1
  92. data/docs/throwsConstraint.html +46 -17
  93. data/docs/timeout.html +1 -1
  94. data/docs/typeAsserts.html +1 -1
  95. data/docs/typeConstraints.html +1 -1
  96. data/docs/upgrade.html +1 -1
  97. data/docs/utilityAsserts.html +1 -1
  98. data/docs/valueSource.html +19 -10
  99. data/docs/values.html +3 -3
  100. data/docs/vsSupport.html +1 -1
  101. data/lib/net-1.1/framework/nunit.framework.dll +0 -0
  102. data/lib/net-1.1/framework/nunit.framework.xml +105 -19
  103. data/lib/net-1.1/framework/nunit.mocks.dll +0 -0
  104. data/lib/net-1.1/framework/pnunit.framework.dll +0 -0
  105. data/lib/net-1.1/lib/nunit-console-runner.dll +0 -0
  106. data/lib/net-1.1/lib/nunit.core.dll +0 -0
  107. data/lib/net-1.1/lib/nunit.core.interfaces.dll +0 -0
  108. data/lib/net-1.1/lib/nunit.fixtures.dll +0 -0
  109. data/lib/net-1.1/lib/nunit.util.dll +0 -0
  110. data/lib/net-1.1/nunit-agent.exe +0 -0
  111. data/lib/net-1.1/nunit-console.exe +0 -0
  112. data/lib/net-1.1/nunit.framework.dll +0 -0
  113. data/lib/net-1.1/pnunit-agent.exe +0 -0
  114. data/lib/net-1.1/pnunit-launcher.exe +0 -0
  115. data/lib/net-1.1/pnunit.framework.dll +0 -0
  116. data/lib/net-1.1/pnunit.tests.dll +0 -0
  117. data/lib/net-1.1/tests/loadtest-assembly.dll +0 -0
  118. data/lib/net-1.1/tests/mock-assembly.dll +0 -0
  119. data/lib/net-1.1/tests/nonamespace-assembly.dll +0 -0
  120. data/lib/net-1.1/tests/nunit-console.tests.dll +0 -0
  121. data/lib/net-1.1/tests/nunit.core.tests.dll +0 -0
  122. data/lib/net-1.1/tests/nunit.fixtures.tests.dll +0 -0
  123. data/lib/net-1.1/tests/nunit.framework.dll +0 -0
  124. data/lib/net-1.1/tests/nunit.framework.tests.dll +0 -0
  125. data/lib/net-1.1/tests/nunit.mocks.tests.dll +0 -0
  126. data/lib/net-1.1/tests/nunit.util.tests.dll +0 -0
  127. data/lib/net-1.1/tests/test-assembly.dll +0 -0
  128. data/lib/net-1.1/tests/test-utilities.dll +0 -0
  129. data/lib/net-1.1/tests/timing-tests.dll +0 -0
  130. data/lib/net-2.0/framework/nunit.framework.dll +0 -0
  131. data/lib/net-2.0/framework/nunit.framework.xml +113 -19
  132. data/lib/net-2.0/framework/nunit.mocks.dll +0 -0
  133. data/lib/net-2.0/framework/pnunit.framework.dll +0 -0
  134. data/lib/net-2.0/lib/Failure.png +0 -0
  135. data/lib/net-2.0/lib/Ignored.png +0 -0
  136. data/lib/net-2.0/lib/Inconclusive.png +0 -0
  137. data/lib/net-2.0/lib/Skipped.png +0 -0
  138. data/lib/net-2.0/lib/Success.png +0 -0
  139. data/lib/net-2.0/lib/nunit-console-runner.dll +0 -0
  140. data/lib/net-2.0/lib/nunit-gui-runner.dll +0 -0
  141. data/lib/net-2.0/lib/nunit.core.dll +0 -0
  142. data/lib/net-2.0/lib/nunit.core.interfaces.dll +0 -0
  143. data/lib/net-2.0/lib/nunit.fixtures.dll +0 -0
  144. data/lib/net-2.0/lib/nunit.uiexception.dll +0 -0
  145. data/lib/net-2.0/lib/nunit.uikit.dll +0 -0
  146. data/lib/net-2.0/lib/nunit.util.dll +0 -0
  147. data/lib/net-2.0/nunit-agent.exe +0 -0
  148. data/lib/net-2.0/nunit-console-x86.exe +0 -0
  149. data/lib/net-2.0/nunit-console.exe +0 -0
  150. data/lib/net-2.0/nunit-x86.exe +0 -0
  151. data/lib/net-2.0/nunit.exe +0 -0
  152. data/lib/net-2.0/nunit.framework.dll +0 -0
  153. data/lib/net-2.0/pnunit-agent.exe +0 -0
  154. data/lib/net-2.0/pnunit-launcher.exe +0 -0
  155. data/lib/net-2.0/pnunit.framework.dll +0 -0
  156. data/lib/net-2.0/pnunit.tests.dll +0 -0
  157. data/lib/net-2.0/tests/loadtest-assembly.dll +0 -0
  158. data/lib/net-2.0/tests/mock-assembly.dll +0 -0
  159. data/lib/net-2.0/tests/nonamespace-assembly.dll +0 -0
  160. data/lib/net-2.0/tests/nunit-console.tests.dll +0 -0
  161. data/lib/net-2.0/tests/nunit-gui.tests.dll +0 -0
  162. data/lib/net-2.0/tests/nunit.core.tests.dll +0 -0
  163. data/lib/net-2.0/tests/nunit.fixtures.tests.dll +0 -0
  164. data/lib/net-2.0/tests/nunit.framework.dll +0 -0
  165. data/lib/net-2.0/tests/nunit.framework.tests.dll +0 -0
  166. data/lib/net-2.0/tests/nunit.mocks.tests.dll +0 -0
  167. data/lib/net-2.0/tests/nunit.uiexception.tests.dll +0 -0
  168. data/lib/net-2.0/tests/nunit.uikit.tests.dll +0 -0
  169. data/lib/net-2.0/tests/nunit.util.tests.dll +0 -0
  170. data/lib/net-2.0/tests/test-assembly.dll +0 -0
  171. data/lib/net-2.0/tests/test-utilities.dll +0 -0
  172. data/lib/net-2.0/tests/timing-tests.dll +0 -0
  173. metadata +9 -8
  174. data/lib/net-2.0/lib/Failure.jpg +0 -0
  175. data/lib/net-2.0/lib/Gray.jpg +0 -0
  176. data/lib/net-2.0/lib/Ignored.jpg +0 -0
  177. data/lib/net-2.0/lib/Success.jpg +0 -0
data/docs/nunit-gui.html CHANGED
@@ -90,7 +90,7 @@ see the documentation for the
90
90
  <!-- Submenu -->
91
91
  <div id="subnav">
92
92
  <ul>
93
- <li><a href="index.html">NUnit 2.5</a></li>
93
+ <li><a href="index.html">NUnit 2.5.1</a></li>
94
94
  <ul>
95
95
  <li><a href="getStarted.html">Getting&nbsp;Started</a></li>
96
96
  <li><a href="assertions.html">Assertions</a></li>
@@ -183,7 +183,7 @@ code of NUnit itself, since NUnit uses the same mechanism internally.</p>
183
183
  <!-- Submenu -->
184
184
  <div id="subnav">
185
185
  <ul>
186
- <li><a href="index.html">NUnit 2.5</a></li>
186
+ <li><a href="index.html">NUnit 2.5.1</a></li>
187
187
  <ul>
188
188
  <li><a href="getStarted.html">Getting&nbsp;Started</a></li>
189
189
  <li><a href="assertions.html">Assertions</a></li>
data/docs/pairwise.html CHANGED
@@ -45,7 +45,7 @@ combinatorial approach.
45
45
  <!-- Submenu -->
46
46
  <div id="subnav">
47
47
  <ul>
48
- <li><a href="index.html">NUnit 2.5</a></li>
48
+ <li><a href="index.html">NUnit 2.5.1</a></li>
49
49
  <ul>
50
50
  <li><a href="getStarted.html">Getting&nbsp;Started</a></li>
51
51
  <li><a href="assertions.html">Assertions</a></li>
@@ -63,13 +63,32 @@ are provided:
63
63
  <li><a href="combinatorial.html">CombinatorialAttribute</a> (default)
64
64
  <li><a href="pairwise.html">PairwiseAttribute</a><li><a href="sequential.html">SequentialAttribute</a></ul>
65
65
 
66
+ <h3>Order of Execution</h3>
67
+
68
+ <p>In NUnit 2.5, individual test cases are sorted alphabetically and executed in
69
+ that order. With NUnit 2.5.1, the individual cases are not sorted, but are
70
+ executed in the order in which NUnit discovers them. This order does <b>not</b>
71
+ follow the lexical order of the attributes and will often vary between different
72
+ compilers or different versions of the CLR.
73
+
74
+ <p>The following specific rules for ordering apply:
75
+ <ol>
76
+ <li>If all arguments are specified in a <b>single TestCaseSource</b> attribute,
77
+ the ordering of the cases provided will be maintained.
78
+ <li>If each parameter has a <b>single Values</b>, <b>ValueSource</b> or
79
+ <b>Range</b> attribute and the <b>Sequential</b> combining strategy
80
+ is used - or there is only one argument - the ordering will be maintained.
81
+ <li>In all other cases, including using multiple <b>TestCase</b> attributes
82
+ or a combination of different types of attributes, the ordering of the
83
+ test cases is undefined.
84
+ </ol>
66
85
 
67
86
  </div>
68
87
 
69
88
  <!-- Submenu -->
70
89
  <div id="subnav">
71
90
  <ul>
72
- <li><a href="index.html">NUnit 2.5</a></li>
91
+ <li><a href="index.html">NUnit 2.5.1</a></li>
73
92
  <ul>
74
93
  <li><a href="getStarted.html">Getting&nbsp;Started</a></li>
75
94
  <li><a href="assertions.html">Assertions</a></li>
@@ -115,7 +115,7 @@ Assert.That( "/folder1/folder2/folder3",
115
115
  <!-- Submenu -->
116
116
  <div id="subnav">
117
117
  <ul>
118
- <li><a href="index.html">NUnit 2.5</a></li>
118
+ <li><a href="index.html">NUnit 2.5.1</a></li>
119
119
  <ul>
120
120
  <li><a href="getStarted.html">Getting&nbsp;Started</a></li>
121
121
  <li><a href="assertions.html">Assertions</a></li>
data/docs/platform.html CHANGED
@@ -244,7 +244,7 @@ public class SuccessTests
244
244
  <!-- Submenu -->
245
245
  <div id="subnav">
246
246
  <ul>
247
- <li><a href="index.html">NUnit 2.5</a></li>
247
+ <li><a href="index.html">NUnit 2.5.1</a></li>
248
248
  <ul>
249
249
  <li><a href="getStarted.html">Getting&nbsp;Started</a></li>
250
250
  <li><a href="assertions.html">Assertions</a></li>
data/docs/pnunit.html CHANGED
@@ -61,7 +61,7 @@ may be used through the normal NUnit console or gui runners.
61
61
  <!-- Submenu -->
62
62
  <div id="subnav">
63
63
  <ul>
64
- <li><a href="index.html">NUnit 2.5</a></li>
64
+ <li><a href="index.html">NUnit 2.5.1</a></li>
65
65
  <ul>
66
66
  <li><a href="getStarted.html">Getting&nbsp;Started</a></li>
67
67
  <li><a href="assertions.html">Assertions</a></li>
@@ -156,7 +156,7 @@ the contents to change the path to the assembly.
156
156
  <!-- Submenu -->
157
157
  <div id="subnav">
158
158
  <ul>
159
- <li><a href="index.html">NUnit 2.5</a></li>
159
+ <li><a href="index.html">NUnit 2.5.1</a></li>
160
160
  <ul>
161
161
  <li><a href="getStarted.html">Getting&nbsp;Started</a></li>
162
162
  <li><a href="assertions.html">Assertions</a></li>
data/docs/property.html CHANGED
@@ -179,7 +179,7 @@ feature itself for certain attributes. See, for example,
179
179
  <!-- Submenu -->
180
180
  <div id="subnav">
181
181
  <ul>
182
- <li><a href="index.html">NUnit 2.5</a></li>
182
+ <li><a href="index.html">NUnit 2.5.1</a></li>
183
183
  <ul>
184
184
  <li><a href="getStarted.html">Getting&nbsp;Started</a></li>
185
185
  <li><a href="assertions.html">Assertions</a></li>
@@ -45,7 +45,7 @@ to be applied to the property.
45
45
  <!-- Submenu -->
46
46
  <div id="subnav">
47
47
  <ul>
48
- <li><a href="index.html">NUnit 2.5</a></li>
48
+ <li><a href="index.html">NUnit 2.5.1</a></li>
49
49
  <ul>
50
50
  <li><a href="getStarted.html">Getting&nbsp;Started</a></li>
51
51
  <li><a href="assertions.html">Assertions</a></li>
data/docs/quickStart.html CHANGED
@@ -283,7 +283,7 @@ public void TransferWithInsufficientFundsAtomicity()
283
283
  <!-- Submenu -->
284
284
  <div id="subnav">
285
285
  <ul>
286
- <li><a href="index.html">NUnit 2.5</a></li>
286
+ <li><a href="index.html">NUnit 2.5.1</a></li>
287
287
  <ul>
288
288
  <li><a href="getStarted.html">Getting&nbsp;Started</a></li>
289
289
  <ul>
data/docs/random.html CHANGED
@@ -69,7 +69,7 @@ public void MyTest(
69
69
  <!-- Submenu -->
70
70
  <div id="subnav">
71
71
  <ul>
72
- <li><a href="index.html">NUnit 2.5</a></li>
72
+ <li><a href="index.html">NUnit 2.5.1</a></li>
73
73
  <ul>
74
74
  <li><a href="getStarted.html">Getting&nbsp;Started</a></li>
75
75
  <li><a href="assertions.html">Assertions</a></li>
data/docs/range.html CHANGED
@@ -80,7 +80,7 @@ public void MyTest(
80
80
  <!-- Submenu -->
81
81
  <div id="subnav">
82
82
  <ul>
83
- <li><a href="index.html">NUnit 2.5</a></li>
83
+ <li><a href="index.html">NUnit 2.5.1</a></li>
84
84
  <ul>
85
85
  <li><a href="getStarted.html">Getting&nbsp;Started</a></li>
86
86
  <li><a href="assertions.html">Assertions</a></li>
@@ -32,309 +32,817 @@ dt { font-weight: bold }
32
32
 
33
33
  <h2>Release Notes</h2>
34
34
 
35
+ <style><!--
36
+ li { padding-bottom: .5em; }
37
+ ul ul li { padding-bottom: 0; }
38
+ dt { font-weight: bold }
39
+ --></style>
40
+
41
+ <h3>NUnit 2.5.1 - Version 2.5.1.9189 - July 8, 2009</h3>
42
+
43
+ <h4>Framework</h4>
44
+
45
+ <ul>
46
+ <li>A new <b>TestResult</b> state has been defined for tests cancelled by the
47
+ user. Results with <b>ResultState.Cancelled</b> are reported as a type of
48
+ failure and no longer generate an ApplicationException.
49
+ <li>Parameterized test fixtures with <b>TestCaseSource</b> or <b>ValueSource</b>
50
+ data are now constructed using the appropriate parameterized constructor
51
+ when test cases are being created. This avoids the need for a default
52
+ constructor and permits use of member data initialized from
53
+ the fixture parameters in creating the test data.
54
+ <li>The <b>TestCaseData</b> class now supports use of a string or other
55
+ array type as the sole argument value, without the need to nest
56
+ that array in an object array.
57
+ <li>Abstract classes marked with <b>TestFixtureAttribute</b> are no longer
58
+ reported as ignored or non-runnable.
59
+ <br><br>
60
+ <b>Note:</b> This was changed in 2.5 but was omitted from the release notes.
61
+ <li>The methods in the <b>Text</b> class are now marked as obsolete. For string
62
+ constraints, use one of the following at the start of an expression:
63
+ <ul>
64
+ <li><b>Is.StringContaining</b>
65
+ <li><b>Is.StringStarting</b>
66
+ <li><b>Is.StringEnding</b>
67
+ <li><b>Is.StringMatching</b>
68
+ </ul>
69
+ Within an expression (afer Not, Some, All, And, Or, etc.) you may use
70
+ <ul>
71
+ <li><b>Contains</b> or <b>ContainsSubstring</b>
72
+ <li><b>StartsWith</b>
73
+ <li><b>EndsWith</b>
74
+ <li><b>Matches</b>
75
+ </ul>
76
+ <li><b>ThrowsConstraint</b> now has a constructor taking an <b>ActualValueDelegate</b>
77
+ in addition to the constructor that takes a <b>TestDelegate</b>. This allows
78
+ simpler use of Lambda expressions under C# 3.0, but requires users of pre-3.0
79
+ compilers to disambiguate their delegates by use of an explicit return
80
+ expression.
81
+ </ul>
82
+
83
+ <h4>Core</h4>
84
+
85
+ <ul>
86
+ <li>Individual test cases under a parameterized test are
87
+ no longer sorted by name within the test group but are
88
+ run (and shown in the Gui) in the order in which the
89
+ data is retrieved.
90
+ <br><br>
91
+ <b>Note:</b> Since the order of retrieval of custom
92
+ attributes is not guaranteed by the CLR, the order
93
+ of test cases will not necessarily match the textual
94
+ ordering of attributes in the source code. The order
95
+ of tests will vary across different compilers and
96
+ CLR versions as well.
97
+ <li>The XML test result file now contains a count of
98
+ inconclusive results.
99
+ </ul>
100
+
101
+ <h4>Gui</h4>
102
+
103
+ <ul>
104
+ <li>The default icons in the Gui tree have been updated.
105
+ <li>Alternative icons placed by the user in the directory containing
106
+ nunit.uikit.dll may now be in PNG format. Icons are now recognized
107
+ for Skipped and Inconclusive status in addition to Success, Failure
108
+ and Ignored.
109
+ <li>A new setting option allows the user to disable checking for the
110
+ existence of files in the Recent Files list before listing them. This
111
+ prevents NUnit from appearing to freeze when the file is on a network
112
+ path that is no longer connected.
113
+ </ul>
114
+
115
+ <h4>Extensibility</h4>
116
+
117
+ <ul>
118
+ <li>The <b>ITestCaseProvider2</b> and <b>IDatapointProvider2</b> interfaces
119
+ extend <b>ITestCaseProvider</b> and <b>IDatapointProvider</b>
120
+ with methods that include the fixture for which the test case is being
121
+ built. Providers may implement either the old or the new interface,
122
+ but the new interface is required if the data source is contained in
123
+ the test fixture itself so that the fixture may be constructed with
124
+ the proper parameters in the case of a parameterized fixture.
125
+ </ul>
126
+
127
+ <h4>Bug Fixes</h4>
128
+
129
+ <ul>
130
+ <li>Lambda in Throws constraint was not compiling correctly.
131
+ <li>Null reference exception is no longer thrown when adding an assembly to a
132
+ new project that has not yet been saved.
133
+ <li>Dispose is now called on disposable types created while loading test case
134
+ parameters.
135
+ <li>Installations that copy NUnit to a single folder (no lib or framework folders)
136
+ now work correctly.
137
+ <li>Test Assemblies menu item is no longer enabled when no test was loaded
138
+ <li>The Text Output tab of the Settings dialog no longer causes an exception
139
+ when invoked from the mini-gui.
140
+ <li>Errors in various copyright statements were fixed and the year updated to 2009.
141
+ <li>Control characters in test arguments are now escaped in the display.
142
+ <li>Additional control characters are now escaped in error messages.
143
+ <li>Miscellaneous typographic corrections were made to the documentation.
144
+ </ul>
145
+ <h3>NUnit 2.5 Final Release - Version 2.5.0.9122 - May 2, 2009</h3>
146
+
147
+ <h4>Framework</h4>
148
+
149
+ <ul>
150
+ <li>A new syntax element, <b>Matches(Constraint)</b>, allows use of
151
+ custom constraints, predicates or lambda expressions in constraint expressions.
152
+
153
+ <li>The <b>MessageMatch</b> enum used with <b>ExpectedExceptionAttribute</b>
154
+ has been extended with a new value <b>StartsWith</b>, indicating that the
155
+ exception message must start with the string provided.
156
+
157
+ <li><b>TestCaseAttribute</b> now supports a <b>MessageMatch</b>
158
+ property.
159
+ </ul>
160
+
161
+ <h4>Gui</h4>
162
+
163
+ <ul>
164
+ <li>The File menu now allows selecting an alternate runtime,
165
+ such as Mono, on a machine with multiple CLR implementations
166
+ installed. This feature is still considered experimental and
167
+ may change in the future.
168
+
169
+ <li>The combo box in the Project Editor allowing selection of
170
+ a particular runtime type such as Mono for loading the test
171
+ has been re-enabled.
172
+ </ul>
173
+
174
+ <h4>Bug Fixes</h4>
175
+
176
+ <ul>
177
+ <li>Provided a workaround to a Mono 2.4 bug in handling remote
178
+ references to an interface, where the provider is running under
179
+ MS .NET and the implementation is explicit.
180
+
181
+ <li>Fixed a problem with the display of line numbers from a German
182
+ language stack trace, with lines terminating in a period.
183
+
184
+ <li> The Console Runner display now shows the settings for ProcessModel,
185
+ DomainUsage and RuntimeFramework actually provided, before resolution
186
+ of any defaults.
187
+
188
+ <li> Removed references in the docs to pages that no longer exist.
189
+ </ul>
190
+
35
191
  <h3>NUnit 2.5 Release Candidate - Version 2.5.0.9117 - April 27, 2009</h3>
36
192
 
37
- <div style="max-width:660px;text-align:right">
38
- <a href="releaseDetail.html">View Changes Separately for Each 2.5 Pre-Release</a>
39
- </div>
193
+ <h4>General</h4>
194
+
195
+ <ul>
196
+ <li>The installation now uses a 'lib' subdirectory to hold dlls.
197
+
198
+ <li>The build script target names have been changed to make more sense.
199
+ In particular, 'package' now builds the default package and
200
+ targets not intended to be called directly are no longer listed
201
+ as 'Main Targets' by the -projecthelp option.
202
+ </ul>
203
+
204
+ <h4>Framework</h4>
205
+
206
+ <ul>
207
+ <li>The following Constraints now use the NUnit definition
208
+ of equality in comparing items, which may lead to changed behavior
209
+ of some tests.
210
+ <ul><b>
211
+ <li>UniqueItemsConstraint
212
+ <li>CollectionContainsConstraint
213
+ <li>CollectionEquivalentConstraint
214
+ <li>CollectionSubsetConstraint
215
+ </b></ul>
216
+ The constraints listed now accept the <b>IgnoreCase</b> and <b>Using</b>
217
+ modifiers, which work exactly as they do with <b>EqualConstraint</b>
218
+ </ul>
219
+
220
+ <h4>Core</h4>
221
+
222
+ <ul>
223
+ <li>Caching is now used to reduce the time required to load tests.
224
+ </ul>
225
+
226
+ <h4>Gui</h4>
227
+
228
+ <ul>
229
+ <li>A new submenu under <b>File</b> allows selecting a runtime version
230
+ under which to reload the tests. Reloading in this way does not affect
231
+ any runtime version setting in the project file.
232
+
233
+ <li>The project editor now provides a combo box listing known versions
234
+ of the runtime. Other versions may still be entered in the edit box.
235
+ Cross-CLR execution (for example, running Mono from .NET) has
236
+ been disabled in the Gui, since it isn't yet implemented.
237
+
238
+ <li>The new stack trace display now follows the NUnit Font settings.
239
+ The stack display uses the general gui font, while the source code
240
+ display uses the fixed font.
241
+
242
+ <li>The separate settings for Recent Files under .NET 1.1
243
+ and .NET 2.0 have been combined, since the Gui now runs exclusively
244
+ under .NET 2.0.
245
+
246
+ <li>The time required to restore the visual state of the tree after
247
+ reloading has been substantially reduced, especially for large numbers
248
+ of tests.
249
+ </ul>
250
+
251
+ <h4>Bug Fixes</h4>
252
+
253
+ <ul>
254
+ <li>Use of a long assembly name for the ApplicationName of the AppDomain
255
+ was causing excessively long paths in the shadow cache.
256
+
257
+ <li>The <b>Using</b> modifier of <b>EqualConstraint</b> now works as
258
+ expected for string operands.
259
+
260
+ <li><b>TestCaseAttribute.ExpectedExceptionMessage</b> is no longer ignored.
261
+
262
+ <li>The max number of files setting was not being saved when modified
263
+ in the Gui Settings dialog.
264
+
265
+ <li>As a temporary fix, the pnunit.tests.dll has been moved to the
266
+ same directory as pnunit-agent.exe and pnunit-launcher.exe, since
267
+ pnunit tests don't allow for setting an appbase separate from the
268
+ location of the test assembly.
269
+ </ul>
270
+
271
+ <h3>NUnit 2.5 Beta 3 Release - Version 2.5.0.9096 - April 6, 2009</h3>
272
+
273
+ <h4>General</h4>
274
+
275
+ <ul>
276
+ <li>The Gui is now built against .NET 2.0 only. Tests may still
277
+ be run under .NET 1.x by running in a separate process.
278
+
279
+ <li>The Visual Studio 2003 solution has been removed. Framework
280
+ and other components may still be built under .NET 1.x through
281
+ the NAnt script.
282
+
283
+ <li>The nunit.framework.extensions assembly has been removed
284
+ from the build.
285
+ </ul>
286
+
287
+ <h4>Framework</h4>
288
+
289
+ <ul>
290
+ <li><b>EqualConstraint</b> has been enhanced with
291
+ several new modifiers, which may be used immediately after
292
+ the Within(...) modifier to indicate how a numeric tolerance value
293
+ should be interpreted.
294
+ <ul>
295
+ <li><b>Ulps</b> = as units in the last place (floating point only)
296
+ <li><b>Percent</b> = as a percentage of expected value
297
+ <li><b>Days</b> = as a TimeSpan in days
298
+ <li><b>Hours</b> = as a TimeSpan in hours
299
+ <li><b>Minutes</b> = as a TimeSpan in minutes
300
+ <li><b>Seconds</b> = as a TimeSpan in seconds
301
+ <li><b>Milliseconds</b> = as a TimeSpan in milliseconds
302
+ <li><b>Ticks</b> = as a TimeSpan in ticks
303
+ </ul>
304
+
305
+ <li>The comparison constraints (<b>GreaterThan</b>, <b>LessThan</b>, etc.),
306
+ <b>RangeConstraint</b> and <b>CollectionOrderedConstraint</b> may now be used
307
+ with objects that implement <b>IComparable&lt;T&gt;</b>.
308
+
309
+ <li>The syntax used for specifying that a collection is ordered has changed.
310
+ <b>Is.Ordered</b> is now a property. The property name to use for ordering
311
+ is specified using <b>Is.Ordered.By(name)</b>.
312
+
313
+ <li>The following constraints now accept a <b>Using</b> modifier to indicate
314
+ that a user-specified comparer should be used:
315
+ <ul><b>
316
+ <li>EqualConstraint
317
+ <li>GreaterThanConstraint
318
+ <li>GreaterThanOrEqualConstraint
319
+ <li>LessThanConstraint
320
+ <li>LessThanOrEqualConstraint
321
+ <li>RangeConstraint
322
+ <li>CollectionOrderedConstraint
323
+ </b></ul>
324
+ The provided comparer may be any of the following:
325
+ <ul><b>
326
+ <li>IComparer
327
+ <li>IComparer&lt;T&gt;
328
+ <li>Comparison&lt;T&gt;
329
+ </b></ul>
330
+ In addition, <b>EqualConstraint</b> may use:
331
+ <ul><b>
332
+ <li>IEqualityComparer
333
+ <li>IEqualityComparer&lt;T&gt;
334
+ </b></ul>
335
+ </ul>
336
+
337
+ <h3>NUnit 2.5 Beta 2 Release - Version 2.5.0.9015 - January 15, 2009</h3>
338
+
339
+ <h4>Framework</h4>
340
+
341
+ <ul>
342
+ <li>NUnit now includes an implementation of <b>Theories</b>, similar to what
343
+ is found in JUnit. Support for Theories is provided by the
344
+ <b>Theory</b>, <b>Datapoint</b> and <b>Datapoints</b> attributes and by
345
+ the <b>Assume.That</b> method. For more information and further links,
346
+ see the <a href="theory.html">TheoryAttribute</a>
347
+ documentation page.
348
+ <li>AssertionHelper has been updated so that the Expect overloads now
349
+ include the signatures newly introduced for Assert.That.
350
+ <li>The code for Assert is now generated. This is in addition to the files
351
+ that were generated in beta-1.
352
+ <li><b>AfterConstraint</b> has been renamed to <b>DelayedConstraint</b>.
353
+ </ul>
354
+
355
+ <h4>Console</h4>
356
+
357
+ <ul>
358
+ <li>The console runner now supports a <b>/framework</b> option, which
359
+ allows running the tests under a different version of the CLR.
360
+ </ul>
361
+
362
+ <h4>Gui</h4>
363
+
364
+ <ul>
365
+ <li>The Gui is now able to display the source code for test or production
366
+ code from the stack trace, provided the assemblies contain source code
367
+ information and the source code is available. Contributed by Ir�n�e Hottier.
368
+ <li>Reloading the tests after changing settings in a way that modifies
369
+ the shape of the tree is now handled correctly.
370
+ <li>The Settings Dialog now opens to the page that was last viewed.
371
+ </ul>
372
+
373
+ <h3>NUnit 2.5 Beta 1 Release - Version 2.5.0.8332 - November 27, 2008</h3>
374
+
375
+ <h4>General</h4>
376
+
377
+ <ul>
378
+ <li>Most of the code for elements of the constraint
379
+ syntax is now generated. This allows us to more rapidly deploy new
380
+ constraints with their corresponding syntax. The file <b>SyntaxElements.txt</b>
381
+ contains the specifications used in generating the code. At this time,
382
+ we are including both this file and the generated files with the NUnit source,
383
+ so that those working in other areas of the code don't have to regenerate
384
+ them each time they make changes.
385
+ <li>The nunit.core.extensions assembly has been removed from the build. Features
386
+ that were previously in that assembly are now in the nunit.core assembly.
387
+ <li>All third-party addins have been removed from the build and must be
388
+ downloaded separately from their own sites. An index of such
389
+ addins is maintained on the NUnit site.
390
+ </ul>
391
+
392
+ <h4>Framework</h4>
393
+ <ul>
394
+ <li>New attributes are provided to control use of threads by tests. All of
395
+ the following may be used on methods, classes or assemblies:
396
+ <ul>
397
+ <li><b>RequiresThreadAttribute</b> forces creation of a new thread and
398
+ may optionally indicate the desired ApartmentState for the thread.
399
+ <li><b>RequiresSTAAttribute</b> causes the test to run in the STA. A
400
+ new thread is created only if the parent is not in the STA. On
401
+ methods, the .NET-provided STAThreadAttribute may also be used.
402
+ <li><b>RequiresMTAAttribute</b> causes the test to run in the MTA. A
403
+ new thread is created only if the parent is not in the MTA. On
404
+ methods, the .NET-provided MTAThreadAttribute may also be used.
405
+ <li><b>TimeoutAttribute</b> is used to set the timeout for tests. When
406
+ used on classes or assemblies, the timeout value is used as the
407
+ default timeout for all subordinate test cases. Test cases with
408
+ a timeout value run on a separate thread and return a failure
409
+ message if the timeout is exceeded.
410
+ </ul>
411
+ <li>The <b>MaxTimeAttribute</b> specifies a miximum elapsed time for a
412
+ test case. If the test takes longer, it is reported as a failure.
413
+ This attribute was previously available as an extension.
414
+ <br><br>
415
+ <b>Note:</b> Unlike <b>TimeoutAttribute</b>, <b>MaxTimeAttribute</b>
416
+ does not cause the test to be cancelled, but merely times it.
417
+ <li><b>RepeatAttribute</b> causes a test case to be executed multiple
418
+ times. This attribute was previously available as an extension.
419
+ <li><b>PairwiseAttribute</b> now works, generating all pairs of each
420
+ argument value. [In earlier betas, it was unimpemented and simply
421
+ generated all combinations.]
422
+ <li><b>PropertyAttribute</b> has been modified internally to use a dictionary
423
+ of name/value pairs rather than just a single name and value. This feature
424
+ is not exposed for direct use, but may be accessed by derived attributes
425
+ that want to apply multiple named values to the test. For a simple
426
+ example of usage, see the code for <b>RequiredThreadAttribute</b>.
427
+ <li>The presence of <b>TestCaseSourceAttribute</b> on a method is now
428
+ sufficient to identify it as a test. As with <b>TestCaseAttribute</b>,
429
+ use of <b>TestAttribute</b> is optional.
430
+ <li><b>Assert.That</b> has been extended to allow a delegate or a reference
431
+ as the argument. By default, these are evaluated before being used by
432
+ the constraint supplied but some constraints may delay evaluation. The
433
+ new <b>AfterConstraint</b> is an example.
434
+ <li>An additional overload of <b>Assert.Throws</b> allows passing a
435
+ constraint or constraint expression as the first argument.
436
+ <li>The syntax for AttributeConstraints has been enhanced so that further
437
+ tests may be applied to properties of the attribute rather than just
438
+ checking for its existence.
439
+ <li><b>AfterConstraint</b> allows delaying the application of a constraint
440
+ until a certain time has passed. In it's simplest form, it replaces
441
+ use of a Sleep in the code but it also supports polling, which may
442
+ allow use of a longer maximum time while still keeping the tests as
443
+ fast as possible. The <b>After</b> modifier is permitted on any
444
+ constraint, but the delay applies to the entire expression up to the
445
+ point where <b>After</b> appears.
446
+ <br><br>
447
+ <b>Note:</b> Use of After with a simple value makes no sense, since
448
+ the value will be extracted at the point of call. It's intended use
449
+ is with delegates and references. If a delegate is used with polling,
450
+ it may be called multiple times so only methods without side effects
451
+ should be used in this way.
452
+ </ul>
453
+
454
+ <h4>Core</h4>
455
+
456
+ <ul>
457
+ <li>NUnit now supports running tests in a separate process or in
458
+ multiple processes per assembly. In addition, tests run in
459
+ a separate process may use a different runtime version
460
+ from that under which NUnit is running.
461
+ <br><br>
462
+ <b>Note:</b> In the Beta release, execution of tests under Mono
463
+ from a copy of NUnit that is running under .NET is not yet supported.
464
+ </ul>
465
+
466
+ <h4>Console</h4>
467
+
468
+ <ul>
469
+ <li>The new <b>/process:xxxxx</b> command line option is used to run
470
+ tests in a separate process or in multiple processes per assembly.
471
+ <li>A new commandline option, <b>/timeout:nnnn</b> allows you to specify a
472
+ default timeout value, which is applied to each test case in the run without
473
+ a Timeout specified.
474
+ </ul>
475
+
476
+ <h4>Gui</h4>
477
+
478
+ <ul>
479
+ <li>The Assembly Info display now uses a scrolling text box and has
480
+ been enhanced to show information about the Process and AppDomain
481
+ in which the test is running and the runtime version under that
482
+ is being used.
483
+ <li>The Project Editor now allows setting the ProcessModel and
484
+ DomainUsage for a project to control how that project is
485
+ loaded and run. It also supports setting a target runtime
486
+ framework for each configuration. If the target runtime is
487
+ different from the runtime under which NUnit is running, the
488
+ tests will be run automatically in a separate process under
489
+ the target runtime.
490
+ <li>The Project Editor no longer reloads the tests as each
491
+ individual change is made. Tests are reloaded after the
492
+ editor is closed and only if changes have been made to
493
+ the overall project configuration or to the active
494
+ configuration.
495
+ <li>The "Options" dialog is now called "Settings."
496
+ </ul>
497
+
498
+ <h4>Extensibility</h4>
499
+
500
+ <ul>
501
+ <li>The implementation of constraints has been changed so that it is no
502
+ longer necessary to create an additional "Modifier" class when a
503
+ custom constraint takes modifiers. If you simply implement each modifier
504
+ as a property or method returning the object itself, it will be
505
+ usable in the full range of constraint expressions.
506
+ <br><br>
507
+ <b>Note:</b> Although you can readily create custom constraints,
508
+ this release of NUnit still lacks the ability to create new syntactic
509
+ elements without rebuilding the framework.
510
+ </ul>
511
+
512
+ <h4>Bug Fixes</h4>
513
+
514
+ <ul>
515
+ <li>Loading a single assembly and then adding another assembly using
516
+ the Add Assembly menu item was not working correctly.
517
+ <li>Reloading tests after settings changes was failing when the
518
+ new settings changed the shape of the tree in such a way
519
+ that the new tests didn't match the old ones correctly.
520
+ <li>The Reload Project menu item was followed by a prompt asking
521
+ if the current project state should be saved first and making
522
+ the reload work in an unexpected way if you answered yes.
523
+ <li>A class without a TestFixture attribute, containing only
524
+ TestCase methods, without any Tests, was not recognized as
525
+ a test fixture.
526
+ <li>Assert.DoesNotThrow was failing to display a user message.
527
+ <li>Xml documentation for Assert.IsNotEmpty and Assert.AreEqual
528
+ was incorrect.
529
+ <li>CollectionAssert.AreEqual and EqualConstraint were not
530
+ working with IEnumerables that were not also Collections.
531
+ <li>PlatformAttribute now distinguishes correctly between
532
+ Vista and Windows 2008 Server.
533
+ </ul>
534
+
535
+ <h3>NUnit 2.5 Alpha 4 Release - Version 2.5.0.8528 - September 14, 2008</h3>
536
+
537
+ <h4>Framework</h4>
538
+ <ul>
539
+ <li>Use of the TestFixtureAttribute is now optional in designating
540
+ classes that contain tests.
541
+ <li>More than one method may now be marked with the <b>SetUp</b>, <b>TearDown</b>,
542
+ <b>TestFixtureSetUp</b> and <b>TestFixtureTearDown</b> attributes. Setups
543
+ in a base class are executed before those in a derived class and teardowns
544
+ are executed in the reverse order. If there are multiple setups or teardowns
545
+ defined at the same level, the order is unspecified so this practice is
546
+ not generally recommended.
547
+ <li>The <b>FactoryAttribute</b> and <b>TestCaseFactoryAttribute</b> introduced
548
+ in alhpa-3 have been removed. The new <b>TestCaseSourceAttribute</b> allows
549
+ specification of the name of the source of test cases and - optionally - the
550
+ type providing the source if it is not the same as the type that contains the
551
+ test. Only one source may be specified per attribute but the attribute may be
552
+ applied more than once to indicate multiple sources.
553
+ <li>It is now possibe to specify Categories and Properties on test cases
554
+ defined using the TestCaseData class.
555
+ <li>Named fields, properties or methods may be used to provide values for
556
+ individual method parameters using the new <b>ValueSourceAttribute</b>.
557
+ <li>New constraints and corresponding syntactic constructs are provided:
558
+ <ul>
559
+ <li><b>Is.InRange</b> tests that a value lies within a specified range.
560
+ <li><b>Has.Attribute()</b> tests for the presence of a specified attribute
561
+ on a type.
562
+ <li><b>Is.AssignableTo</b> allows reversing the operands of AssignableFrom
563
+ for increased clarity in the code and in any error messages when the
564
+ actual value is of the derived type.
565
+ <li><b>Throws.Exception</b> allows testing the exception thrown by a
566
+ delegate in place and provides the ability to make arbitrary tests
567
+ on the caught exception. <b>Throws.TypeOf()</b> and <b>Throws.InstanceOf()</b>
568
+ are provided as shorthand for the commonly used <b>Throws.Exception.TypeOf()</b>
569
+ and <b>Throws.Exception.InstanceOf</b>.
570
+ <li><b>Throws.Nothing</b> provides for testing that a delegate does
571
+ not throw. While it doesn't do much, it serves the purpose of
572
+ converting an unexpected error into a test failure.
573
+ </ul>
574
+ <li>The parsing of constraint expressions written using the fluent interface
575
+ has been reorganized internally, with the following benefits:
576
+ <ul>
577
+ <li>Meaningless sequences like "...Null.Null..." or "...And.Or..."
578
+ will no longer compile - the NUnit tests actually verify this
579
+ by attempting to compile them.
580
+ <li>Syntax modifiers like <b>Within</b> and <b>IgnoreCase</b> are
581
+ now only accepted - and shown by intellisense - on constraints that
582
+ actually make use of them.
583
+ <li>New <b>And</b> and <b>Or</b> infix operators are provided.
584
+ <li>The <b>With</b> provides some ability to group constraints.
585
+ </ul>
586
+
587
+ <p><p><b>Note:</b> Operators are evaluated in the following order:
588
+ <ol>
589
+ <li>Postfix modifiers (highest)
590
+ <li>Not Operator
591
+ <li>And operator (see below)
592
+ <li>Or operator (see below)
593
+ <li>With operator
594
+ <li>Some, None and All operators
595
+ <li>And operator when followed directly by Some, None or All
596
+ <li>Or operator when followed directly by Some, None or All
597
+ <li>Overloaded operator &amp;
598
+ <li>Overloaded operator | (lowest)
599
+ </ol>
600
+ Operators of equal precedence associate left to right.
601
+
602
+ <li>The "syntax helper" classes, <b>Is</b>, <b>Has</b>, <b>Text</b> and
603
+ <b>List</b> have been moved to the NUnit.Framework namespace, since they
604
+ seem to have entered the mainstream.
605
+ <li>NUnit 2.5 is able to recognize, load and run NUnitLite tests.
606
+ <li>PropertyConstraint now works with Types when testing for the
607
+ existence of a named property.
608
+ </ul>
609
+
610
+ <h4>Core</h4>
611
+ <ul>
612
+ <li>Experimental support is provided for running tests in a separate process.
613
+ Currently, this is only exposed in the Gui runner.
614
+ <li>NUnit recognizes a special attribute on
615
+ the config element of the nunit project file, <b>runtimeFramework</b>,
616
+ which may be set to "net-1.1" or "net-2.0." This causes use of the
617
+ appropriate runner if tests are run in a separate process.
618
+ <p><p>
619
+ <b>Note:</b> Both of the above features are experimental and
620
+ somewhat fragile. Results are expected to vary for different
621
+ installations and we ask that problems be reported.
622
+ </ul>
623
+
624
+ <h4>Gui</h4>
625
+
626
+ <ul>
627
+ <li>The Addin Dialog now shows an error message for any addin that
628
+ fails to load. (from 2.4.8)
629
+ <li>The TestLoader settings dialog provides an option for running tests
630
+ in a separate process.
631
+ <li>The Assembly Info display now shows two runtime versions for each
632
+ test assembly: the one for which it was built and the one under
633
+ which it is currently loaded.
634
+ </ul>
635
+
636
+ <h4>Extensibility</h4>
637
+
638
+ <ul>
639
+ <li>The <b>RequiredAddinAttribute</b> is now only permitted at the assembly level.
640
+ </ul>
641
+
642
+ <h4>Bug Fixes</h4>
643
+
644
+ <ul>
645
+ <li>The Gui output panes were failing to use a fixed font. (from 2.4.8)
646
+ </ul>
647
+
648
+ <h3>NUnit 2.5 Alpha 3 Release - Version 2.5.0.8189 - July 7, 2008</h3>
649
+
650
+ <h4>General</h4>
651
+
652
+ <ul>
653
+ <li>NUnit now uses a new version numbering scheme. The first three
654
+ dot-separated values represent the release level, as before, while
655
+ the fourth is a build number tied to the date of the release. This
656
+ alpha release, for example, is numbered 2.5.0.8189.
657
+ <li>The NUnit source now includes a VS2008 project, in addition to
658
+ the existing VS2005 and VS2003 projects
659
+ </ul>
660
+
661
+ <h4>Framework</h4>
662
+
663
+ <ul>
664
+ <li><b>DataSourceAttribute</b> has been replaced with <b>FactoryAttribute</b>.
665
+ The new attribute may refer to any field, method or property that
666
+ provides test cases consistent with the signature of the method on which
667
+ it appears. The naming of this attribute is still a bit unsatisfactory
668
+ and it may change in the final release.
669
+ <li>The new <b>TestCaseFactoryAttribute</b> class may be used to mark a
670
+ field, method or property that provides test cases. It specifies the
671
+ argument types of the test cases that will be provided and is used
672
+ to identify the cases to be used when the name of a factory is not
673
+ specified.
674
+ <li>Data may be specified for individual arguments of a parameterized test
675
+ using the new attributes: <b>ValuesAttribute</b>, <b>RangeAttribute</b>
676
+ and <b>RandomAttribute</b>. By default, test cases are created using
677
+ every possible combination of the items provided. Attributes on the
678
+ test method may specify how data is combined. This release includes
679
+ <b>SequentialAttribute</b>, <b>CombinatorialAttribute</b> (the default) and
680
+ <b>PairwiseAttribute</b>. However, Pairwise combination is not yet
681
+ implemented, so that attribute is currently ignored.
682
+ <li><b>TestFixture</b> classes may now be generic. They must be marked with
683
+ or or more instances of <b>TextFixtureAttribute</b> using the new
684
+ constructor that takes an array of Types. NUnit will instantiate
685
+ the fixture multiple times, using the type arguments provided.
686
+ <li>Parameterized test methods may now be generic. NUnit will deduce
687
+ the correct implementation to use based on the types of the
688
+ parameters provided.
689
+ <li>The new <b>RequiredAddinAttribute</b> may be used to mark tests,
690
+ fixtures or assemblies, indicating the name of any addin that is
691
+ required to run the tests. If the addin is not present, the test,
692
+ fixture or assembly is marked NotRunnable.
693
+ <li>A new assertion and corresponding constraint <b>IsOrdered</b>
694
+ has been added. (contributed by Simone Busoli)
695
+ <li><b>PlatformAttribute</b> has been extended to accept the new keywords
696
+ <b>NT6</b>, <b>Vista</b> and <b>Win2008Server</b>.
697
+ <br><br>
698
+ <b>Note:</b> In the current alpha release, NUnit is unable to
699
+ distintuish between Vista and Windows 2008 Server. Either
700
+ of them will match all the above values.
701
+ </ul>
702
+
703
+ <h4>Gui</h4>
704
+
705
+ <ul>
706
+ <li>Properties with a collection for a value are now displayed
707
+ displayed as a comma-separated list in the properties window.
708
+ </ul>
709
+
710
+ <h4>Extensibility</h4>
711
+
712
+ <ul>
713
+ <li>The <b>IParameterProvider</b> interface has been replaced with
714
+ <b>ITestCaseProvider</b>. The ParameterProviders extension point
715
+ has been renamed to TestCaseProviders.
716
+ <li>A new extension point, <b>DataPointProviders</b>, has been
717
+ added to support extensions that provide data for individual
718
+ test parameters. Extensions must implement the <b>IDataPointProvider</b>
719
+ interface.
720
+ <li>A simpler method of providing new data point extensions based
721
+ on attributes applied to the parameter itself is also available.
722
+ Such attributes may be derived from <b>ValuesAttribute</b> and
723
+ do not require any special addin in order to work.
724
+ </ul>
725
+
726
+ <h4>Bug Fixes</h4>
727
+
728
+ <ul>
729
+ <li>NUnit tests of AssertThrows were not working on systems using
730
+ non-English cultures.
731
+ <li>Domains were not unloading correctly in some circumstances. Unloading
732
+ is now done on a separate thread.
733
+ <li>An NUnitSettings.xml file of zero length was causing a crash. (from 2.4.8)
734
+ <li>Invoking the gui with /exclude:XXX, where XXX is a non-existent
735
+ category, was causing all tests to be excluded. (from 2.4.8)
736
+ <li>Categories were not working properly on repeated tests. (from 2.4.8)
737
+ <li>A serious memory leak was fixed in the NUnit test runners. (from 2.4.8)
738
+ <li>Static SetUp and TearDown methods were not being called in a SetUpFixture.
739
+ <li>The current directory used when executing addins that load tests was
740
+ not correctly set.
741
+ </ul>
742
+
743
+ <h3>NUnit 2.5 Alpha 2 Release - May 7, 2008</h3>
744
+
745
+ <p><b>Note:</b> Since this is an alpha level release, the
746
+ features are not complete and some features present in
747
+ this release may be removed or changed in future releases.
748
+
749
+ <h4>General</h4>
750
+
751
+ <ul>
752
+ <li>This release includes pNUnit, an extended NUnit runner for distributed
753
+ parallel tests. The pNUnit program was developed at Codice Software
754
+ for use in testing the Plastic SCM and has been contributed to NUnit.
755
+ For more info about using pNUnit see the
756
+ <a href="http://www.codicesoftware.com/opdownloads2/oppnunit.aspx">pNUnit site</a>.
757
+ <li>The install now offers Typical, Complete and Custom options. Selecting
758
+ Typical gets you the NUnit framework, core, console runner and Gui.
759
+ To install pNUnit, any of the bundled addins or the NUnit tests,
760
+ select Complete or Custom.
761
+ </ul>
762
+
763
+ <h4>Extensibility</h4>
764
+
765
+ <ul>
766
+ <li>The RowTestExtension, which was merged into the nunit extension dlls
767
+ in Alpha-1, is now provided as a separate addin. This is the general
768
+ approach we plan to take with regard to any bundled addins, since it
769
+ permits the creator of an addin to provide updates separately from
770
+ the NUnit release.
771
+ <li>This release includes the CSUnitAddin extension, which allows the running of
772
+ CSUnit tests under NUnit. The csunit.dll must be available in order to
773
+ run the tests.
774
+ </ul>
775
+
776
+ <h3>NUnit 2.5 Alpha 1 Release - April 18, 2008</h3>
40
777
 
41
778
  <h4>General</h4>
42
779
 
43
780
  <ul>
44
- <li>NUnit now uses a new version numbering scheme. The first three
45
- dot-separated values represent the release level, as before, while
46
- the fourth is a build number tied to the date of the release.
47
- <li>This release includes pNUnit, an extended NUnit runner for distributed
48
- parallel tests. The pNUnit program was developed at Codice Software
49
- for use in testing the Plastic SCM and has been contributed to NUnit.
50
- For more info about using pNUnit see the
51
- <a href="http://www.codicesoftware.com/opdownloads2/oppnunit.aspx">pNUnit site</a>.
52
- <li>The installer now offers Typical, Complete and Custom options. Selecting
53
- Typical gets you the NUnit framework, core, console runner and Gui.
54
- To install pNUnit or the NUnit tests select Complete or Custom.
55
- <li>There are no longer separate distributed packages for .NET 1.1 and 2.0.
781
+ <li>There are no longer separate distributed packages for .NET 1.1 an 2.0.
56
782
  Both the binary zip and msi packages contain subdirectories for .NET
57
- 1.1 and 2.0. The Gui is now built for .NET 2.0 only. Tests may still
58
- be run under .NET 1.0 o 1.1 by running in a separate process.
59
- In the case of the msi, the user may elect to install either
783
+ 1.1 and 2.0. In the case of the msi, the user may elect to install either
60
784
  or both of them.
61
785
  <li>The Visual Studio solutions and projects are now in a directory tree that
62
- is parallel to the source tree. A VS2008 project has been added and the
63
- VS2003 project was removed. Certain components are still built for .NET
64
- 1.0 and 1.1 through the NAnt script.
65
- <li>Most of the code for Assert and for elements of the constraint
66
- syntax is now generated. This allows us to more rapidly deploy new
67
- constraints with their corresponding syntax. The file <b>SyntaxElements.txt</b>
68
- contains the specifications used in generating the code and the source of
69
- a tool for generating the source is included in the tools directory. The
70
- generated files continue to reside in the NUnit source at this time,
71
- so that those working in other areas of the code don't have to regenerate
72
- them each time they make changes.
73
- <li>The nunit.framework.extensions and nunit.core.extensions assemblies have
74
- been removed from the build.
75
- <li>NUnit is now built using NAnt 0.86 beta 1. The windows installer is created
76
- with WiX 2.0.5085
786
+ is parallel to the source tree. This eliminates problems where the VS2003
787
+ and VS2005 builds were interfering with one another and makes room for
788
+ adding VS2008.
789
+ <li>NUnit is now built using NAnt 0.86 beta 1
790
+ <li>The windows installer is now created using WiX 2.0.5085
77
791
  </ul>
78
792
 
79
- <h4>Framework - Attributes</h4>
793
+ <h4>Framework</h4>
80
794
 
81
795
  <ul>
82
- <li>NUnit 2.5 features parameterized tests, which are defined using a number
83
- of new attributes:
796
+ <li>Two new attributes have been added to support passing arguments
797
+ to test methods:
84
798
  <ul>
85
799
  <li><b>TestCaseAttribute</b> allows the programmer to
86
800
  specify the arguments and a number of optional parameters inline.
87
- <li><b>TestCaseSourceAttribute</b> identifies a property, field or method
88
- that to provide the arguments and other parameters.
89
- <li><b>ValuesAttribute</b> is used on a method parameter to specify
90
- a set of values to be supplied as arguments inline.
91
- <li><b>RangeAttribute</b> works like <b>ValuesAttribute</b> but lets
92
- you specify a range to be used for the arguments.
93
- <li><b>RandomAttribute</b> works like <b>ValuesAttribute</b> but lets
94
- you use random values for the arguments.
95
- <li><b>ValueSourceAttribute</b> is placed on a method paramter to
96
- specify the property, field or method that will supply arguments.
97
- <li><b>CombinatorialAttribute</b>, <b>PairwiseAttribute</b> and
98
- <b>SequentialAttribute</b> indicate how data supplied for
99
- individual parameters is combined to form test cases. The default
100
- is Combinatorial, which supplies all possible combinations.
101
- <li>The presence of either <b>TestCaseAttribute</b> or <b>TestCaseSourceAttribute</b>
102
- on a method is now sufficient to identify it as a test even if it is not
103
- decorated with <b>TestAttribute</b>.
104
- <li>Test Cases specified using <b>TestCaseAttribute</b> or <b>TestCaseSourceAttribute</b>
105
- may include a Description, ExpectedException, Categories and Properties in
106
- addition to the arguments themselves.
107
- <li>Parameterized test methods may be generic. NUnit will deduce
108
- the correct implementation to use based on the types of the
109
- parameters provided. Generic test methods are supported in
110
- both generic and non-generic clases.
801
+ <li><b>DataSourceAttribute</b> identifies a static property that
802
+ will provide the arguments and other parameters.
111
803
  </ul>
112
- <li>NUnit now includes an implementation of <b>Theories</b>, similar to what
113
- is found in JUnit. Support for Theories is provided by the
114
- <b>Theory</b>, <b>Datapoint</b> and <b>Datapoints</b> attributes and by
115
- the <b>Assume.That</b> method. For more information and further links,
116
- see the <a href="theory.html">TheoryAttribute</a>
117
- documentation page.
118
- <li>Other new attributes provided in NUnit 2.5 are:
119
- <ul>
120
- <li><b>RequiresThreadAttribute</b> forces creation of a new thread and
121
- may optionally indicate the desired ApartmentState for the thread.
122
- <li><b>RequiresSTAAttribute</b> causes the test to run in the STA. A
123
- new thread is created only if the parent is not in the STA. On
124
- methods, the .NET-provided STAThreadAttribute may also be used.
125
- <li><b>RequiresMTAAttribute</b> causes the test to run in the MTA. A
126
- new thread is created only if the parent is not in the MTA. On
127
- methods, the .NET-provided MTAThreadAttribute may also be used.
128
- <li><b>TimeoutAttribute</b> is used to set the timeout for tests. When
129
- used on classes or assemblies, the timeout value is used as the
130
- default timeout for all subordinate test cases. Test cases with
131
- a timeout value run on a separate thread and return a failure
132
- message if the timeout is exceeded.
133
- <li>The <b>MaxTimeAttribute</b> specifies a miximum elapsed time for a
134
- test case. If the test takes longer, it is reported as a failure.
135
- This attribute was previously available as an extension.
136
- Unlike <b>TimeoutAttribute</b>, <b>MaxTimeAttribute</b>
137
- does not cause the test to be cancelled, but merely times it.
138
- <li><b>RepeatAttribute</b> causes a test case to be executed multiple
139
- times. This attribute was previously available as an extension.
140
- <li><b>RequiredAddinAttribute</b> may be used to mark an assembly,
141
- indicating the name of any addin that is required to run the tests. If the
142
- addin is not present, the test assembly is marked NotRunnable.
143
- </ul>
144
- <li><b>TestFixture</b> classes may now be generic. They must be marked with
145
- one or more instances of <b>TextFixtureAttribute</b> using the new
146
- constructor that takes an array of Types. NUnit will instantiate
147
- the fixture multiple times, using the type arguments provided.
148
- <li>Use of the TestFixtureAttribute is now optional in designating
149
- non-generic classes that contain tests marked with either
150
- <b>TestAttribute</b> or <b>TestCaseAttribute</b>.
151
- <li>More than one method may now be marked with the <b>SetUp</b>, <b>TearDown</b>,
152
- <b>TestFixtureSetUp</b> and <b>TestFixtureTearDown</b> attributes. Setups
153
- in a base class are executed before those in a derived class and teardowns
154
- are executed in the reverse order. If there are multiple setups or teardowns
155
- defined at the same level, the order is unspecified so this practice is
156
- not generally recommended.
157
- <li><b>PropertyAttribute</b> has been modified internally to use a dictionary
158
- of name/value pairs rather than just a single name and value. This feature
159
- is not exposed for direct use, but may be accessed by derived attributes
160
- that want to apply multiple named values to the test. For a simple
161
- example of usage, see the code for <b>RequiredThreadAttribute</b>.
162
- <li><b>PlatformAttribute</b> has been extended to accept the new keywords
163
- <b>NT6</b>, <b>Vista</b> and <b>Win2008Server</b>.
164
- <li>The <b>MessageMatch</b> enum used with <b>ExpectedExceptionAttribute</b>
165
- has been extended with a new value <b>StartsWith</b>, indicating that the
166
- exception message must start with the string provided.
167
- <li><b>TestCaseAttribute</b> now supports a <b>MessageMatch</b>
168
- property.
169
- </ul>
170
804
 
171
- <h4>Framework - Constraints</h4>
172
-
173
- <ul>
174
- <li>New constraints and corresponding syntactic constructs are provided:
805
+ <li>Two new constraints have been added to permit testing of
806
+ application-created paths, without requiring that they exist in
807
+ the file system. The following syntax is supported:
175
808
  <ul>
176
- <li><b>Is.InRange</b> tests that a value lies within a specified range.
177
- <li><b>Has.Attribute()</b> tests for the presence of a specified attribute
178
- on a type and optionally applies further tests to that attribute.
179
- <li><b>Is.InstanceOf</b> replaces </b>Is.InstanceOfType</b>, which
180
- is now deprecated.
181
- <li><b>Is.AssignableTo</b> allows reversing the operands of AssignableFrom
182
- for increased clarity in the code and in any error messages when the
183
- actual value is of the derived type.
184
- <li><b>Throws.Exception</b> allows testing the exception thrown by a
185
- delegate in place and provides the ability to make arbitrary tests
186
- on the caught exception. <b>Throws.TypeOf()</b> and <b>Throws.InstanceOf()</b>
187
- are provided as shorthand for the commonly used <b>Throws.Exception.TypeOf()</b>
188
- and <b>Throws.Exception.InstanceOf</b>.
189
- <li><b>Throws.Nothing</b> provides for testing that a delegate does
190
- not throw. While it doesn't do much, it serves the purpose of
191
- converting an unexpected error into a test failure.
192
- <li><b>Is.Ordered</b> allows testing a collection is ordered according
193
- to a supplied comparison criterion. (contributed by Simone Busoli)
194
- <li><b>Is.SamePath(string)</b> tests that two paths are equivalent, without
195
- requiring that they exist in the file system.
196
- <li><b>Is.SamePathOrUnder(string)</b> tests that one path is under another,
197
- without requiring that either path exists in the file system.
198
- <li><b>DelayedConstraint</b> and the <b>After</b> syntactic element allow
199
- delaying the application of a constraint until a certain time has passed.
200
- See <a href="delayedConstraint.html">DelayedConstraint</a> for
201
- features and limitations.
809
+ <li><b>Is.SamePath(string)</b>
810
+ <li><b>Is.SamePathOrUnder(string)</b>
202
811
  </ul>
203
- <li>The parsing of constraint expressions written using the fluent interface
204
- has been reorganized internally, with the following benefits:
205
- <ul>
206
- <li>Meaningless sequences like "...Null.Null..." or "...And.Or..."
207
- will no longer compile - the NUnit tests actually verify this
208
- by attempting to compile them.
209
- <li>Syntax modifiers like <b>Within</b> and <b>IgnoreCase</b> are
210
- now only accepted - and shown by intellisense - on constraints that
211
- actually make use of them.
212
- <li>New <b>And</b> and <b>Or</b> infix operators are provided.
213
- <li>The <b>With</b> provides some ability to group constraints.
214
- </ul>
215
- <!--
216
- <p><p><b>Note:</b> Operators are evaluated in the following order:
217
- <ol>
218
- <li>Postfix modifiers (highest)
219
- <li>Not Operator
220
- <li>And operator (see below)
221
- <li>Or operator (see below)
222
- <li>With operator
223
- <li>Some, None and All operators
224
- <li>And operator when followed directly by Some, None or All
225
- <li>Or operator when followed directly by Some, None or All
226
- <li>Overloaded operator &amp;
227
- <li>Overloaded operator | (lowest)
228
- </ol>
229
- Operators of equal precedence associate left to right.
230
- -->
231
- <li>The "syntax helper" classes, <b>Is</b>, <b>Has</b>, <b>Text</b>,
232
- <b>List</b> and <b>Throws</b>, have been moved to the NUnit.Framework
233
- namespace, so that they may be used more easily.
234
- <li>PropertyConstraint now works with Types when testing for the
235
- existence of a named property.
236
- <li><b>EqualConstraint</b> has been enhanced with
237
- several new modifiers, which may be used immediately after
238
- the Within(...) modifier to indicate how a numeric tolerance value
239
- should be interpreted.
812
+
813
+ <li>The DirectoryAssert class has been added, providing the following Methods:
240
814
  <ul>
241
- <li><b>Ulps</b> = as units in the last place (floating point only)
242
- <li><b>Percent</b> = as a percentage of expected value
243
- <li><b>Days</b> = as a TimeSpan in days
244
- <li><b>Hours</b> = as a TimeSpan in hours
245
- <li><b>Minutes</b> = as a TimeSpan in minutes
246
- <li><b>Seconds</b> = as a TimeSpan in seconds
247
- <li><b>Milliseconds</b> = as a TimeSpan in milliseconds
248
- <li><b>Ticks</b> = as a TimeSpan in ticks
815
+ <li><b>AreEqual(DirectoryInfo, DirectoryInfo)</b>
816
+ <li><b>AreEqual(string, string)</b>
817
+ <li><b>AreNotEqual(DirectoryInfo, DirectoryInfo)</b>
818
+ <li><b>AreNotEqual(string, string)</b>
819
+ <li><b>IsEmpty(DirectoryInfo, DirectoryInfo)</b>
820
+ <li><b>IsEmpty(string, string)</b>
821
+ <li><b>IsNotEmpty(DirectoryInfo, DirectoryInfo)</b>
822
+ <li><b>IsNotEmpty(string, string)</b>
823
+ <li><b>IsWithin(DirectoryInfo, DirectoryInfo)</b>
824
+ <li><b>IsWithin(string, string)</b>
825
+ <li><b>IsNotWithin(DirectoryInfo, DirectoryInfo)</b>
826
+ <li><b>IsNotWithin(string, string)</b>
249
827
  </ul>
250
-
251
- <li>The comparison constraints (<b>GreaterThan</b>, <b>LessThan</b>, etc.),
252
- <b>RangeConstraint</b> and <b>CollectionOrderedConstraint</b> may now be used
253
- with objects that implement <b>IComparable&lt;T&gt;</b>.
254
-
255
- <li>The syntax used for specifying that a collection is ordered has changed.
256
- <b>Is.Ordered</b> is now a property. The property name to use for ordering
257
- is specified using <b>Is.Ordered.By(name)</b>.
258
828
 
259
- <li>The following constraints now accept a <b>Using</b> modifier to indicate
260
- that a user-specified comparer should be used:
261
- <ul><b>
262
- <li>EqualConstraint
263
- <li>GreaterThanConstraint
264
- <li>GreaterThanOrEqualConstraint
265
- <li>LessThanConstraint
266
- <li>LessThanOrEqualConstraint
267
- <li>RangeConstraint
268
- <li>UniqueItemsConstraint
269
- <li>CollectionContainsConstraint
270
- <li>CollectionEquivalentConstraint
271
- <li>CollectionSubsetConstraint
272
- <li>CollectionOrderedConstraint
273
- </b></ul>
274
- The provided comparer may be any of the following:
275
- <ul><b>
276
- <li>IComparer
277
- <li>IComparer&lt;T&gt;
278
- <li>Comparison&lt;T&gt;
279
- </b></ul>
280
- In addition, <b>EqualConstraint</b> may use:
281
- <ul><b>
282
- <li>IEqualityComparer
283
- <li>IEqualityComparer&lt;T&gt;
284
- </b></ul>
285
- Using C# 3.0, <b>lambda expressions</b> are also accepted.
286
- <li>A new syntax element, <b>Matches(Constraint)</b>, allows use of
287
- custom constraints, predicates or lambda expressions in constraint expressions.
288
- </ul>
289
-
290
- <h4>Framework - Asserts</h4>
291
-
292
- <ul>
293
- <li>New Assert methods:
294
- <ul>
295
- <li><b>Assert.IsOrdered</b> allows checking that a collection is in
296
- a particular order. (contributed by Simone Busoli)
297
- <li>The <b>DirectoryAssert</b> class provides tests on directories:
298
- <ul>
299
- <li><b>AreEqual(DirectoryInfo, DirectoryInfo)</b>
300
- <li><b>AreEqual(string, string)</b>
301
- <li><b>AreNotEqual(DirectoryInfo, DirectoryInfo)</b>
302
- <li><b>AreNotEqual(string, string)</b>
303
- <li><b>IsEmpty(DirectoryInfo, DirectoryInfo)</b>
304
- <li><b>IsEmpty(string, string)</b>
305
- <li><b>IsNotEmpty(DirectoryInfo, DirectoryInfo)</b>
306
- <li><b>IsNotEmpty(string, string)</b>
307
- <li><b>IsWithin(DirectoryInfo, DirectoryInfo)</b>
308
- <li><b>IsWithin(string, string)</b>
309
- <li><b>IsNotWithin(DirectoryInfo, DirectoryInfo)</b>
310
- <li><b>IsNotWithin(string, string)</b>
311
- </ul>
312
- <li><b>Assert.Throws(Type expectedException, TestDelegate code)</b>
313
- gives more control over tests of expected exceptions.
314
- <b>TestDelegate</b> is a delegate, which may of course be supplied
315
- as an anonymous delegate or lambda expression. If the correct exception
316
- type is thrown, the actual exception is returned from the method, so
317
- that further verification may be performed.
318
- <li><b>Assert.Throws(Constraint, TestDelegate)</b> allows passing a
319
- constraint or constraint expression as the first argument, which
320
- is then applied to the resulting exception.
321
- <li><b>Assert.DoesNotThrow</b> method tests that a
322
- delegate does not throw an exception.
323
- <li><b>Assert.Pass</b> allows early termination of a test with a
324
- successful result.
325
- <li><b>Assert.Inconclusive</b> terminates a test, returning
326
- the new Inconclusive result state.
327
- </ul>
328
-
329
- <li><b>Assert.That</b> has been extended to allow a delegate or a reference
330
- as the argument. By default, these are evaluated before being used by
331
- the constraint supplied but some constraints may delay evaluation. The
332
- new <b>DelayedConstraint</b> is an example.
829
+ <li>The method <b>Assert.Throws(Type expectedException, TestSnippet code)</b>
830
+ has been added to provide more control over tests of expected exceptions.
831
+ <b>TestSnippet</b> is a delegate, which may of course be supplied
832
+ anonymously under .NET 2.0. If the correct exception type is thrown,
833
+ the actual exception is returned from the method, allowing further
834
+ verification to be performed.
835
+
836
+ <li>The <b>Assert.DoesNotThrow</b> method may be used to verify that a
837
+ delegate does not throw an exception.
838
+
839
+ <li>The <b>Assert.Pass</b> method allows early termination of a test with a
840
+ successful result.
333
841
 
334
- <li>AssertionHelper has been updated so that the Expect overloads now
335
- include the signatures newly introduced for Assert.That.
842
+ <li>The <b>Assert.Inconclusive</b> method allows returning
843
+ the new Inconclusive result state.
336
844
 
337
- <li>NUnit now includes added functionality in the .NET 2.0 build of
845
+ <li>NUnit now includes added funtionality in the .NET 2.0 build of
338
846
  the framework. The following additional features are supported:
339
847
  <ul>
340
848
  <li>All Asserts and Constraints work with nullable types.
@@ -348,11 +856,6 @@ property.
348
856
  </ul>
349
857
  </ul>
350
858
 
351
- </ul>
352
-
353
- <h4>Framework - Miscellaneous</h4>
354
-
355
- <ul>
356
859
  <li>The following obsolete interfaces, classes and methods have been removed:
357
860
  <ul>
358
861
  <li>The <b>IAsserter</b> interface
@@ -364,39 +867,26 @@ property.
364
867
  <li>Two <b>ExpectedExceptionAttribute(Type, string)</b> constructor
365
868
  <li>Two <b>ExpectedExceptionAttribute(string, string)</b> constructor
366
869
  </ul>
870
+
871
+ <li>The syntactic constructs in the <b>SyntaxHelpers</b> namespace have been
872
+ moved to the <b>NUnit.Framework.Syntax.CSharp</b> namespace. The old
873
+ namespace may still be used for existing classes, but will not be
874
+ supported after the 2.5 release.
875
+
367
876
  </ul>
368
877
 
369
878
  <h4>Core</h4>
370
879
 
371
880
  <ul>
372
- <!-- Beta 1 -->
373
- <li>NUnit now supports running tests in a separate process or in
374
- multiple processes per assembly. In addition, tests run in
375
- a separate process may use a different runtime framework
376
- from that under which NUnit is running.
377
- <br><br>
378
- <b>Note:</b> In the Beta release, execution of tests under Mono
379
- from a copy of NUnit that is running under .NET is not yet supported.
380
- <!-- Alpha 1 -->
381
881
  <li>NUnit now allows use of static methods as tests and for SetUp, TearDown,
382
882
  TestFixtureSetUp and TestFixtureTearDown.
383
883
  <li>Failures and Errors are now distinquished internally and in summary reports.
384
884
  Methods that are not run because they are invalid are also reported separately.
385
- <li>NUnit 2.5 is able to recognize, load and run NUnitLite tests.
386
885
  </ul>
387
886
 
388
887
  <h4>Console</h4>
389
888
 
390
889
  <ul>
391
- <li>The console runner now supports a <b>/framework</b> option, which
392
- allows running the tests under a different version of the CLR.
393
- <!-- Beta 1 -->
394
- <li>The new <b>/process:xxxxx</b> command line option is used to run
395
- tests in a separate process or in multiple processes per assembly.
396
- <li>A new commandline option, <b>/timeout:nnnn</b> allows you to specify a
397
- default timeout value, which is applied to each test case in the run without
398
- a Timeout specified.
399
- <!-- Alpha 1 -->
400
890
  <li>The summary report now displays Errors, Failures, Inconclusive, Ignored and Skipped tests
401
891
  separately. More detailed information on non-runnable tests and setup failures
402
892
  is provided.
@@ -407,111 +897,37 @@ property.
407
897
  <h4>Gui</h4>
408
898
 
409
899
  <ul>
410
- <li>The Gui is now able to display the source code for test or production
411
- code from the stack trace, provided the assemblies contain source code
412
- information and the source code is available. Contributed by Ir�n�e Hottier.
413
- <li>Reloading the tests after changing settings in a way that modifies
414
- the shape of the tree is now handled correctly.
415
- <li>The Settings Dialog now opens to the page that was last viewed.
416
900
  <li>The default gui display now uses a single tab for all text output. For
417
901
  users upgrading from an earlier release, the current settings are
418
902
  honored. If you wish to change to the new default, use the Restore Defaults
419
903
  button on the Text Output settings dialog.
420
- <li>The tree display shows non-runnable tests in red and inconclusive tests
421
- in orange. Inconclusive tests are temporarily listed
422
- on the Tests Not Run tab for this release.
904
+
423
905
  <li>The final test run display shows a more detailed summary: passed tests,
424
906
  errors, failures, inconclusive, non-runnable, skipped and ignored.
425
- <li>The Project Editor now allows setting the ProcessModel and
426
- DomainUsage for a project to control how that project is
427
- loaded and run. It also supports setting a target runtime
428
- framework for each configuration. If the target runtime is
429
- different from the runtime under which NUnit is running, the
430
- tests will be run automatically in a separate process under
431
- the target runtime.
432
- <li>The TestLoader settings dialog provides default settings for
433
- running tests in a separate process or in multiple processes
434
- if not specified in the NUnit project file.
435
- <li>The Project Editor no longer reloads the tests as each
436
- individual change is made. Tests are reloaded after the
437
- editor is closed and only if changes have been made to
438
- the overall project configuration or to the active
439
- configuration.
440
- <li>The Addin Dialog now shows an error message for any addin that
441
- fails to load. (from 2.4.8)
442
- <li>The Assembly Info display now uses a scrolling text box and has
443
- been enhanced to show information about the Process and AppDomain
444
- in which the test is running. It also shows two runtime versions for
445
- eachtest assembly: the one for which it was built and the one under
446
- which it is currently loaded.
447
- <li>The status bar now displays errors and failures separately.
448
- <li>Properties with a collection for a value are now displayed
449
- displayed as a comma-separated list in the properties window.
907
+
908
+ <li>The status bar now displays errors and failures separately in.
909
+
910
+ <li>The tree display shows non-runnable tests in red and inconclusive tests
911
+ in orange. Inconclusive tests are temporarily listed
912
+ on the Tests Not Run tab for this alpha release.
450
913
  </ul>
451
914
 
452
915
  <h4>Extensibility</h4>
453
916
 
454
917
  <ul>
455
- <!-- Beta 1 -->
456
- <li>The implementation of constraints has been simplified so that it is now
457
- possible to provide modifier properties on a constraint without creating
458
- any additional classes. Such custom constraints can be integrated into
459
- the NUnit syntax by rebuilding the framework assembly.
460
- <br><br>
461
- <b>Note:</b> The ability to create new syntactic
462
- elements without rebuilding the framework is planned for a future release.
463
- <li>A simpler method of providing new data point extensions based
464
- on attributes applied to the parameter itself is now available.
465
- Such attributes may be derived from <b>ValuesAttribute</b> and
466
- do not require any special addin in order to work.
467
- <!-- Alpha 1 -->
468
- <li>New extension points <b>TestCaseProviders</b> and <b>DataPointProviders</b>
469
- allows addins to provide data for parameterized tests.
918
+ <li>A new extension point <b>ParameterProviders</b> allows addins to
919
+ provide data for parameterized tests.
920
+
470
921
  <li>The following extensions are included in the nunit.core.extensions
471
922
  and nunit.framework.extensions assemblies:
472
923
  <ul>
924
+ <li>The MaxTime extension, which was previously a sample.
925
+ <li>The RowTest extension, which remains an alternative to NUnit's
926
+ native TestCase syntax.
473
927
  <li>The XmlConstraint extension, which allows comparing two xml files
474
928
  </ul>
475
929
  </ul>
476
930
 
477
- <h4>Bug Fixes</h4>
478
-
479
- <ul>
480
- <!-- Beta 1 -->
481
- <li>Loading a single assembly and then adding another assembly using
482
- the Add Assembly menu item was not working correctly.
483
- <li>Reloading tests after settings changes was failing when the
484
- new settings changed the shape of the tree in such a way
485
- that the new tests didn't match the old ones correctly.
486
- <li>The Reload Project menu item was followed by a prompt asking
487
- if the current project state should be saved first and making
488
- the reload work in an unexpected way if you answered yes.
489
- <li>A class without a TestFixture attribute, containing only
490
- TestCase methods, without any Tests, was not recognized as
491
- a test fixture.
492
- <li>Assert.DoesNotThrow was failing to display a user message.
493
- <li>Xml documentation for Assert.IsNotEmpty and Assert.AreEqual
494
- was incorrect.
495
- <li>CollectionAssert.AreEqual and EqualConstraint were not
496
- working with IEnumerables that were not also Collections.
497
- <li>PlatformAttribute now distinguishes correctly between
498
- Vista and Windows 2008 Server.
499
- <!-- Alpha 4 -->
500
- <li>The Gui output panes were failing to use a fixed font. (from 2.4.8)
501
- <!-- Alpha 3 -->
502
- <li>NUnit tests of AssertThrows were not working on systems using
503
- non-English cultures.
504
- <li>Domains were not unloading correctly in some circumstances. Unloading
505
- is now done on a separate thread.
506
- <li>An NUnitSettings.xml file of zero length was causing a crash. (from 2.4.8)
507
- <li>Invoking the gui with /exclude:XXX, where XXX is a non-existent
508
- category, was causing all tests to be excluded. (from 2.4.8)
509
- <li>Categories were not working properly on repeated tests. (from 2.4.8)
510
- <li>A serious memory leak was fixed in the NUnit test runners. (from 2.4.8)
511
- <li>Static SetUp and TearDown methods were not being called in a SetUpFixture.
512
- <li>The current directory used when executing addins that load tests was
513
- not correctly set.
514
- </ul>
515
931
 
516
932
  <h3>Earlier Releases</h3>
517
933
 
@@ -523,28 +939,25 @@ property.
523
939
 
524
940
  <!-- Submenu -->
525
941
  <div id="subnav">
526
- <ul>
527
- <li><a href="index.html">NUnit 2.5</a></li>
528
- <ul>
529
- <li><a href="getStarted.html">Getting&nbsp;Started</a></li>
530
- <li><a href="assertions.html">Assertions</a></li>
531
- <li><a href="constraintModel.html">Constraints</a></li>
532
- <li><a href="attributes.html">Attributes</a></li>
533
- <li><a href="nunit-console.html">Console&nbsp;Runner</a></li>
534
- <li><a href="nunit-gui.html">Gui&nbsp;Runner</a></li>
535
- <li><a href="configFiles.html">Configuration&nbsp;Files</a></li>
536
- <li><a href="pnunit.html">PNUnit</a></li>
537
- <li><a href="multiAssembly.html">Multiple&nbsp;Assemblies</a></li>
538
- <li><a href="vsSupport.html">Visual&nbsp;Studio&nbsp;Support</a></li>
539
- <li><a href="extensibility.html">Extensibility</a></li>
540
- <li id="current"><a href="releaseNotes.html">Release&nbsp;Notes</a></li>
541
- <ul>
542
- <li><a href="releaseDetail.html">Pre-Release Details</a></li>
543
- </ul>
544
- <li><a href="samples.html">Samples</a></li>
545
- <li><a href="license.html">License</a></li>
546
- </ul>
547
- </ul>
942
+ <ul>
943
+ <li><a href="index.html">NUnit 2.5.1</a></li>
944
+ <ul>
945
+ <li><a href="getStarted.html">Getting&nbsp;Started</a></li>
946
+ <li><a href="assertions.html">Assertions</a></li>
947
+ <li><a href="constraintModel.html">Constraints</a></li>
948
+ <li><a href="attributes.html">Attributes</a></li>
949
+ <li><a href="nunit-console.html">Console&nbsp;Runner</a></li>
950
+ <li><a href="nunit-gui.html">Gui&nbsp;Runner</a></li>
951
+ <li><a href="configFiles.html">Configuration&nbsp;Files</a></li>
952
+ <li><a href="pnunit.html">PNUnit</a></li>
953
+ <li><a href="multiAssembly.html">Multiple&nbsp;Assemblies</a></li>
954
+ <li><a href="vsSupport.html">Visual&nbsp;Studio&nbsp;Support</a></li>
955
+ <li><a href="extensibility.html">Extensibility</a></li>
956
+ <li id="current"><a href="releaseNotes.html">Release&nbsp;Notes</a></li>
957
+ <li><a href="samples.html">Samples</a></li>
958
+ <li><a href="license.html">License</a></li>
959
+ </ul>
960
+ </ul>
548
961
  </div>
549
962
  <!-- End of Submenu -->
550
963