1
Release Notes for NUnit 2.2 Beta1 - Final Release
4
This is the fourth major release of NUnit and the third since it was
5
rewritten to take advantage of .NET custom attributes. Highlights of
6
this release include support for Mono, multiple-test selection in the
7
GUI interface, a built-in lightweight mock object facility, new command
8
line switches for both GUI and Console runners, and new Category
9
and Explicit attributes.
13
This msi install of NUnit 2.1.5 continues to be built using Visual
14
Studio 2003. The solution and project files in this distribution can
15
only be loaded by Visual Studio 2003.
17
The distributed binaries can run against the Microsoft .NET framework
18
versions 1.0 or 1.1 or the Mono Beta 1 release. Separate config files
19
for each version are no longer needed. Instead, binding redirects are provided in each config which apply when running under .NET version 1.0.
20
The supplied configs for nunit-gui.exe and nunit-console.exe require editing in one case only: if both versions of the framework are installed and the user wants to give preference to version 1.0, it will then be
21
necessary to change the order of the supportedRuntime elements.
23
The NUnit framework and core are now in separate assemblies, both of
24
which are installed in the GAC. The framework assembly contains all
25
types that are normally referenced by tests, while the core contains
26
those types used by the gui and console runners to execute those tests. Tests requiring use of core types � TestSuite, for example � will need
27
to add a reference to the nunit.core.dll assembly.
29
The NAnt build file now supports building NUnit using version 1.0 or
30
1.1 of the .NET framework or with the Beta1 Release of Mono.
32
Assert.AreEqual has been extended to allow comparison of two arrays.
33
To compare as equal, the arrays must be of the same or compatible types, contain the same number of elements and each pair of elements
34
must compare as equal.
36
The core interfaces used to run tests have been changed substantially. These will continue to change to some extent as we attempt to reach a stable set of interfaces for use by third-party clients that run tests through NUnit. In particular, the interfaces now support passing in an array of tests to be run and return an array of test results. Other new features described in this document have required interface changes as well.
38
There is a new CategoryAttribute which allows test fixtures and methods
39
to be grouped into one or more categories using strings as identifiers. Support is provided for running only those tests in selected categories
40
or all tests except those in selected categories.
42
A new ExplicitAttribute designates a test case or fixture that should
43
only be run when explicitly chosen by the user - selected directly or
44
included by means of a Category selection. It will not be run merely
45
because its parent suite is selected.
47
Tests may now be run using a filter. Currently, this support is used only by the new Category feature, but it is intended to be of general application for clients and � eventually � users.
49
NUnit now recognizes when the loaded tests were built using an earlier version of the nunit framework and issues an appropriate message. Earlier versions simply failed to show any tests present in the assembly.
51
NUnit now captures and issues a message when a worker thread, created during the running of a test, throws an exception. Previously, such exceptions were silently ignored.
53
The XML output from a test run now shows the number of Asserts executed
56
When a test with ExpectedException fails because of an Assert, the message from the assert is now given priority over the message indicating that the wrong type of exception was thrown.
58
Private SetUp and TearDown methods are now ignored as intended.
60
SetUp and TearDown are no longer executed for ignored tests.
62
The documentation is now provided as a set of HTML files.
66
The tree of tests now optionally displays checkboxes. These may be used to select multiple tests to be run. Buttons allow clearing all checkboxes and checking only failing tests.
68
There is now an option to display the name of each test in the standard output.
70
The thread used to run tests is now created in the test AppDomain. The priority and apartment state for this thread may now be specified in the config file for the test. A separate configuration section is now used for NUnit settings, to avoid name collision with settings required by the application under test.
72
Command-line options are provided to allow the gui to load and begin running a test suite and to load a specific fixture from an assembly.
73
The properties dialog now shows the number of asserts executed for each test and any description associated with a test.
75
A cancel button has been added to the project save dialog that appears on shutdown.
79
The console program has been reorganized to remove differences in how tests are run between the console and gui runners.
81
The console interface command line parameters now include provision for
82
selecting or excluding tests based on category, for displaying the name
83
of each test in the standard output and for redirecting standard or error
84
output from tests to a file.
86
A namespace may now be specified after /fixture and all tests in that namespace will be executed.
90
This version of NUnit comes with a built-in, lightweight mock object facility. The functions provided include dynamic creation of an implementation of any interface or MBR class, setting of expectations, specification of return values and verification that the expected
93
This facility is in no way a replacement for full-fledged mock
94
frameworks such as NMock and is not expected to add significant
95
features in upcoming releases. Its primary purpose is to support
96
NUnit�s own tests. We wanted to do that without the need to choose a
97
particular mock framework and without having to deal with versioning
98
issues outside of NUnit itself.
100
At the same time, we hope that easy availability of a minimal mock
101
object facility will inspire users who are not familiar with mock
102
objects to experiment with them using our built-in facility and to
103
migrate to a more complete framework as your needs call for it.
107
The mono version of this release is still experimental and has not been tested in all environments.
109
The CategoryAttribute was originally designed to have an Explicit property. This was included in some early releases and is described in
110
the Pragmatic Programmers� recent book. This property has been removed
111
and is replaced by the ExplicitAttribute, which can be used in
112
conjunction with Category to achieve the same effect as shown in