Merge lp:~simone.busoli/nunitv2/async-support-void-and-task-return-types into lp:nunitv2

Proposed by Simone Busoli
Status: Merged
Approved by: Charlie Poole
Approved revision: 3431
Merged at revision: 3424
Proposed branch: lp:~simone.busoli/nunitv2/async-support-void-and-task-return-types
Merge into: lp:nunitv2
Diff against target: 4772 lines (+2739/-1381)
54 files modified
NUnitTests.v3.nunit (+15/-0)
build.bat (+124/-122)
nunit.sln (+280/-266)
scripts/nunit.build.targets (+5/-1)
scripts/nunit.common.targets (+11/-1)
scripts/nunit.package.targets (+2/-0)
src/ClientUtilities/util/ProcessRunner.cs (+2/-2)
src/ClientUtilities/util/RuntimeFrameworkSelector.cs (+4/-3)
src/ClientUtilities/util/Services/TestAgency.cs (+4/-4)
src/ConsoleRunner/nunit-console/ConsoleUi.cs (+6/-4)
src/GuiException/tests/Controls/TestCodeBox.cs (+1/-1)
src/GuiException/tests/Controls/TestErrorBrowser.cs (+1/-1)
src/GuiException/tests/Controls/TestErrorList.cs (+1/-1)
src/GuiException/tests/Controls/TestErrorToolbar.cs (+1/-1)
src/GuiException/tests/Controls/TestSourceCodeDisplay.cs (+1/-1)
src/NUnitCore/core/AsyncSynchronizationContext.cs (+45/-0)
src/NUnitCore/core/Builders/NUnitTestCaseBuilder.cs (+432/-421)
src/NUnitCore/core/NUnitAsyncTestMethod.cs (+79/-0)
src/NUnitCore/core/NUnitTestMethod.cs (+5/-5)
src/NUnitCore/core/Reflect.cs (+10/-1)
src/NUnitCore/core/TestMethod.cs (+33/-30)
src/NUnitCore/core/TestSuite.cs (+1/-2)
src/NUnitCore/core/nunit.core.build (+2/-0)
src/NUnitCore/core/nunit.core.dll.csproj (+227/-225)
src/NUnitCore/interfaces/RuntimeFramework.cs (+2/-0)
src/NUnitCore/tests-net45/NUnitAsyncTestMethodTests.cs (+109/-0)
src/NUnitCore/tests-net45/NUnitTestCaseBuilderTests.cs (+108/-0)
src/NUnitCore/tests-net45/nunit.core.tests.net45.build (+48/-0)
src/NUnitCore/tests-net45/nunit.core.tests.net45.csproj (+84/-0)
src/NUnitCore/tests/CoreExtensionsTests.cs (+2/-2)
src/NUnitCore/tests/DatapointTests.cs (+1/-1)
src/NUnitCore/tests/PlatformDetectionTests.cs (+14/-5)
src/NUnitCore/tests/RuntimeFrameworkTests.cs (+4/-3)
src/NUnitCore/tests/TestRunnerThreadTests.cs (+1/-1)
src/NUnitCore/tests/nunit.core.tests.csproj (+255/-253)
src/NUnitFramework/tests/CollectionAssertTest.cs (+1/-1)
src/NUnitFramework/tests/Constraints/CollectionConstraintTests.cs (+3/-3)
src/NUnitFramework/tests/Constraints/ComparisonConstraintTests.cs (+2/-2)
src/NUnitFramework/tests/Constraints/EqualConstraintTests.cs (+2/-2)
src/NUnitFramework/tests/Syntax/ArbitraryConstraintMatching.cs (+1/-1)
src/NUnitFramework/tests/Syntax/ThrowsTests.cs (+1/-1)
src/ProjectEditor/tests/Presenters/AddConfigurationPresenterTests.cs (+1/-1)
src/ProjectEditor/tests/Presenters/ConfigurationEditorTests.cs (+1/-1)
src/ProjectEditor/tests/Presenters/MainPresenterTests.cs (+1/-1)
src/ProjectEditor/tests/Presenters/PropertyPresenterTests.cs (+1/-1)
src/ProjectEditor/tests/Presenters/RenameConfigurationPresenterTests.cs (+1/-1)
src/ProjectEditor/tests/Presenters/SelectionStub.cs (+1/-1)
src/ProjectEditor/tests/Presenters/XmlPresenterTests.cs (+1/-1)
src/tests/test-assembly-net45/AsyncDummyFixture.cs (+56/-0)
src/tests/test-assembly-net45/AsyncRealFixture.cs (+289/-0)
src/tests/test-assembly-net45/test-assembly-net45.build (+42/-0)
src/tests/test-assembly-net45/test-assembly-net45.csproj (+72/-0)
src/tests/test-assembly/DatapointFixture.cs (+1/-1)
tools/nant/bin/NAnt.exe.config (+342/-6)
To merge this branch: bzr merge lp:~simone.busoli/nunitv2/async-support-void-and-task-return-types
Reviewer Review Type Date Requested Status
Charlie Poole Approve
Review via email: mp+127183@code.launchpad.net

Description of the change

Introduced support for async test methods returning void, Task, and Task<T>.

The first is treated independently of the other two as it is not possible to await on void, therefore it requires relying on a custom SynchronizationContext.

In the other cases instead it is sufficient to just wait on the task returned by the test method and handle the eventual return value/exception accordingly.

Test methods returning Task<T> can be used in conjunction with [TestCase(Result = ...)]. For instance:

[TestCase(Result = 1)]
public async Task<int> MyTest()
{
    return await Task.FromResult(1);
}

Exceptions are handled in a uniform way for both void and Task-returning methods. That is, AggregateException are unwrapped and their first inner exception is returned rethrown. I'm not sure this is the most intuitive way to handle it but at least it makes it consistent between void and non-void. Outside of NUnit normally if you Wait on a task you get back an AggregateException.

To post a comment you must log in.
3427. By Simone Busoli <simone.busoli@vienna>

Explicit type of excpected exception

3428. By Simone Busoli <simone.busoli@vienna>

Replaced usages of Task.FromResult with Task.Run as the former create tasks which are already completed and may mistify the tests outcome

3429. By Simone Busoli <simone.busoli@vienna>

Improved handling of tests which are not supposed to be run

3430. By Simone Busoli <simone.busoli@vienna>

Fixed typo in error message.
Started adding additional tests for parameterized testcases.

3431. By Simone Busoli <simone.busoli@vienna>

Support for building for .NET 4.5 and running async tests even when not targeting .NET 4.5 but as long as 4.5 is installed.

Revision history for this message
Charlie Poole (charlie.poole) wrote :

This looks very good and I have started the merge...

review: Approve
Revision history for this message
Charlie Poole (charlie.poole) wrote :

Changes made in merging this:

1. Added nunit2012.sln alongside nunit.sln. nunit.sln doesn't have the .NET 4.5 projects.
2. Changes to the build script and conditional code to allow building the .NET 1.1 version of the code.
3. Fixed conditional compilation symbols for the two .NET 4.5 assemblies.

Still need (as separate fixes / bugs)

1. Fix RuntimeFramework class to distinguish .NET 4.5 from 4.0 as we do, for example, with 3.5 versus 2.0.
2. Add .NET 4.5 to platform attribute and mark .NET 4.5 tests to only run on that platform
3. Resolve issue with packaging: i.e. the .net 4.5 test should be included in the release package but it should not be automatically run as part of NUnitTests.nunit, since .NET 4.5 may not be installed. The uesr could install it at a later time, however.

Revision history for this message
Simone Busoli (simone.busoli) wrote :

Hi Charlie, thanks.

WRT fix 1), I added a piece of code here: http://bazaar.launchpad.net/~simone.busoli/nunitv2/async-support-void-and-task-return-types/revision/3431#src/ClientUtilities/util/RuntimeFrameworkSelector.cs, and a corresponding test here: http://bazaar.launchpad.net/~simone.busoli/nunitv2/async-support-void-and-task-return-types/revision/3431#src/NUnitCore/tests/PlatformDetectionTests.cs.

I must say that I didn't spend much time on the platform/runtime selection/detection thing. I realized it's quite tricky though.

WRT to changes made in merging:

2) I don't have .NET 1.1 so I couldn't test it unfortunately, sorry for that. I would also like to mention that I noticed a problem in the build script when building for all the frameworks (I know it is not something you would do often though). You know that we have now 3 project files for unit tests, v1, v2 and the new v3. The vX is copied during the build to a file with another name, but I noticed that this is done one off when running the build, instead it should be done every time you invoke the test target, otherwise when running multiple frameworks builds you won't get the behavior you expect.

Revision history for this message
Charlie Poole (charlie.poole) wrote :

Hi Simone,

You're up late!

I'll look at that, but in fact I'm seeing .NET 4.0 displayed in some
places when I know I'm running under 4.5.

There are a few problems with the build that I want to look at but the
particular issue of copying should not apply, since each build uses a
different target directory. Most likely the V3 file will need to go,
since it only works for test builds and not when the distribution
package is created. I filed a bug on the issue and also on the
platform stuff.

Charlie

On Thu, Oct 4, 2012 at 5:21 PM, Simone Busoli <email address hidden> wrote:
> Hi Charlie, thanks.
>
> WRT fix 1), I added a piece of code here: http://bazaar.launchpad.net/~simone.busoli/nunitv2/async-support-void-and-task-return-types/revision/3431#src/ClientUtilities/util/RuntimeFrameworkSelector.cs, and a corresponding test here: http://bazaar.launchpad.net/~simone.busoli/nunitv2/async-support-void-and-task-return-types/revision/3431#src/NUnitCore/tests/PlatformDetectionTests.cs.
>
> I must say that I didn't spend much time on the platform/runtime selection/detection thing. I realized it's quite tricky though.
>
> WRT to changes made in merging:
>
> 2) I don't have .NET 1.1 so I couldn't test it unfortunately, sorry for that. I would also like to mention that I noticed a problem in the build script when building for all the frameworks (I know it is not something you would do often though). You know that we have now 3 project files for unit tests, v1, v2 and the new v3. The vX is copied during the build to a file with another name, but I noticed that this is done one off when running the build, instead it should be done every time you invoke the test target, otherwise when running multiple frameworks builds you won't get the behavior you expect.
>
> --
> https://code.launchpad.net/~simone.busoli/nunitv2/async-support-void-and-task-return-types/+merge/127183
> You are reviewing the proposed merge of lp:~simone.busoli/nunitv2/async-support-void-and-task-return-types into lp:nunitv2.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added file 'NUnitTests.v3.nunit'
2--- NUnitTests.v3.nunit 1970-01-01 00:00:00 +0000
3+++ NUnitTests.v3.nunit 2012-10-03 23:32:21 +0000
4@@ -0,0 +1,15 @@
5+<NUnitProject>
6+ <Settings appbase="."/>
7+ <Config name="Default" binpath="lib;tests;framework">
8+ <assembly path="tests/nunit.framework.tests.dll" />
9+ <assembly path="tests/nunit.core.tests.dll" />
10+ <assembly path="tests/nunit.core.tests.net45.dll" />
11+ <assembly path="tests/nunit.util.tests.dll" />
12+ <assembly path="tests/nunit.mocks.tests.dll" />
13+ <assembly path="tests/nunit-console.tests.dll" />
14+ <assembly path="tests/nunit.uiexception.tests.dll" />
15+ <assembly path="tests/nunit.uikit.tests.dll" />
16+ <assembly path="tests/nunit-gui.tests.dll" />
17+ <assembly path="tests/nunit-editor.tests.dll" />
18+ </Config>
19+</NUnitProject>
20
21=== modified file 'build.bat'
22--- build.bat 2012-09-25 20:55:15 +0000
23+++ build.bat 2012-10-03 23:32:21 +0000
24@@ -1,122 +1,124 @@
25-@echo off
26-
27-rem BUILD - Builds and tests NUnit
28-
29-setlocal
30-
31-set NANT=tools\nant\bin\nant.exe
32-set OPTIONS=-f:scripts\nunit.build.targets
33-set CONFIG=
34-set RUNTIME=
35-set CLEAN=
36-set COMMANDS=
37-set PASSTHRU=
38-goto start
39-
40-:shift
41-shift /1
42-
43-:start
44-
45-IF "%1" EQU "" goto execute
46-
47-IF "%PASSTHRU%" EQU "TRUE" set COMMANDS=%COMMANDS% %1&goto shift
48-
49-IF /I "%1" EQU "?" goto usage
50-IF /I "%1" EQU "/h" goto usage
51-IF /I "%1" EQU "/help" goto usage
52-
53-IF /I "%1" EQU "debug" set CONFIG=debug&goto shift
54-IF /I "%1" EQU "release" set CONFIG=release&goto shift
55-
56-IF /I "%1" EQU "net" set RUNTIME=net&goto shift
57-IF /I "%1" EQU "net-1.0" set RUNTIME=net-1.0&goto shift
58-IF /I "%1" EQU "net-1.1" set RUNTIME=net-1.1&goto shift
59-IF /I "%1" EQU "net-2.0" set RUNTIME=net-2.0&goto shift
60-IF /I "%1" EQU "net-3.0" set RUNTIME=net-3.0&goto shift
61-IF /I "%1" EQU "net-3.5" set RUNTIME=net-3.5&goto shift
62-IF /I "%1" EQU "net-4.0" set RUNTIME=net-4.0&goto shift
63-
64-IF /I "%1" EQU "mono" set RUNTIME=mono&goto shift
65-IF /I "%1" EQU "mono-1.0" set RUNTIME=mono-1.0&goto shift
66-IF /I "%1" EQU "mono-2.0" set RUNTIME=mono-2.0&goto shift
67-IF /I "%1" EQU "mono-3.5" set RUNTIME=mono-3.5&goto shift
68-IF /I "%1" EQU "mono-4.0" set RUNTIME=mono-4.0&goto shift
69-
70-if /I "%1" EQU "clean" set CLEAN=clean&goto shift
71-if /I "%1" EQU "clean-all" set CLEAN=clean-all&goto shift
72-IF /I "%1" EQU "samples" set COMMANDS=%COMMANDS% build-samples&goto shift
73-IF /I "%1" EQU "tools" set COMMANDS=%COMMANDS% build-tools&goto shift
74-IF /I "%1" EQU "test" set COMMANDS=%COMMANDS% test&goto shift
75-IF /I "%1" EQU "gui-test" set COMMANDS=%COMMANDS% gui-test&goto shift
76-IF /I "%1" EQU "gen-syntax" set COMMANDS=%COMMANDS% gen-syntax&goto shift
77-
78-IF "%1" EQU "--" set PASSTHRU=TRUE&goto shift
79-
80-echo Invalid option: %1
81-echo.
82-echo Use BUILD /help for more information.
83-echo.
84-
85-goto done
86-
87-:execute
88-
89-if "%CONFIG%" NEQ "" set OPTIONS=%OPTIONS% -D:build.config=%CONFIG%
90-if "%RUNTIME%" NEQ "" set OPTIONS=%OPTIONS% -D:runtime.config=%RUNTIME%
91-
92-if "%COMMANDS%" EQU "" set COMMANDS=build
93-
94-%NANT% %OPTIONS% %CLEAN% %COMMANDS%
95-
96-goto done
97-
98-: usage
99-
100-echo Builds and tests NUnit for various targets
101-echo.
102-echo usage: BUILD [option [...] ] [ -- nantoptions ]
103-echo.
104-echo Options may be any of the following, in any order...
105-echo.
106-echo debug Builds debug configuration (default)
107-echo release Builds release configuration
108-echo.
109-echo net-4.0 Builds using .NET 4.0 framework (future)
110-echo net-3.5 Builds using .NET 3.5 framework (default)
111-echo net-2.0 Builds using .NET 2.0 framework
112-echo net-1.1 Builds using .NET 1.1 framework
113-echo net-1.0 Builds using .NET 1.0 framework
114-echo mono-4.0 Builds using Mono 4.0 profile (future)
115-echo mono-3.5 Builds using Mono 3.5 profile (default)
116-echo mono-2.0 Builds using Mono 2.0 profile
117-echo mono-1.0 Builds using Mono 1.0 profile
118-echo.
119-echo net Builds using default .NET version
120-echo mono Builds using default Mono profile
121-echo.
122-echo clean Cleans the output directory before building
123-echo clean-all Removes output directories for all runtimes
124-echo.
125-echo samples Builds the NUnit samples
126-echo tools Builds the NUnit tools
127-echo.
128-echo test Runs tests for a build using the console runner
129-echo gui-test Runs tests for a build using the NUnit gui
130-echo.
131-echo ?, /h, /help Displays this help message
132-echo.
133-echo Notes:
134-echo.
135-echo 1. The default .NET or Mono version to be used is selected
136-echo automatically by the NAnt script from those installed.
137-echo.
138-echo 2. When building under a framework version of 3.5 or higher,
139-echo the 2.0 framework is targeted for NUnit itself. Tests use
140-echo the specified higher level framework.
141-echo.
142-echo 3. Any arguments following '--' on the command line are passed
143-echo directly to the NAnt script.
144-echo.
145-
146-: done
147+@echo off
148+
149+rem BUILD - Builds and tests NUnit
150+
151+setlocal
152+
153+set NANT=tools\nant\bin\nant.exe
154+set OPTIONS=-f:scripts\nunit.build.targets
155+set CONFIG=
156+set RUNTIME=
157+set CLEAN=
158+set COMMANDS=
159+set PASSTHRU=
160+goto start
161+
162+:shift
163+shift /1
164+
165+:start
166+
167+IF "%1" EQU "" goto execute
168+
169+IF "%PASSTHRU%" EQU "TRUE" set COMMANDS=%COMMANDS% %1&goto shift
170+
171+IF /I "%1" EQU "?" goto usage
172+IF /I "%1" EQU "/h" goto usage
173+IF /I "%1" EQU "/help" goto usage
174+
175+IF /I "%1" EQU "debug" set CONFIG=debug&goto shift
176+IF /I "%1" EQU "release" set CONFIG=release&goto shift
177+
178+IF /I "%1" EQU "net" set RUNTIME=net&goto shift
179+IF /I "%1" EQU "net-1.0" set RUNTIME=net-1.0&goto shift
180+IF /I "%1" EQU "net-1.1" set RUNTIME=net-1.1&goto shift
181+IF /I "%1" EQU "net-2.0" set RUNTIME=net-2.0&goto shift
182+IF /I "%1" EQU "net-3.0" set RUNTIME=net-3.0&goto shift
183+IF /I "%1" EQU "net-3.5" set RUNTIME=net-3.5&goto shift
184+IF /I "%1" EQU "net-4.0" set RUNTIME=net-4.0&goto shift
185+IF /I "%1" EQU "net-4.5" set RUNTIME=net-4.5&goto shift
186+
187+IF /I "%1" EQU "mono" set RUNTIME=mono&goto shift
188+IF /I "%1" EQU "mono-1.0" set RUNTIME=mono-1.0&goto shift
189+IF /I "%1" EQU "mono-2.0" set RUNTIME=mono-2.0&goto shift
190+IF /I "%1" EQU "mono-3.5" set RUNTIME=mono-3.5&goto shift
191+IF /I "%1" EQU "mono-4.0" set RUNTIME=mono-4.0&goto shift
192+
193+if /I "%1" EQU "clean" set CLEAN=clean&goto shift
194+if /I "%1" EQU "clean-all" set CLEAN=clean-all&goto shift
195+IF /I "%1" EQU "samples" set COMMANDS=%COMMANDS% build-samples&goto shift
196+IF /I "%1" EQU "tools" set COMMANDS=%COMMANDS% build-tools&goto shift
197+IF /I "%1" EQU "test" set COMMANDS=%COMMANDS% test&goto shift
198+IF /I "%1" EQU "gui-test" set COMMANDS=%COMMANDS% gui-test&goto shift
199+IF /I "%1" EQU "gen-syntax" set COMMANDS=%COMMANDS% gen-syntax&goto shift
200+
201+IF "%1" EQU "--" set PASSTHRU=TRUE&goto shift
202+
203+echo Invalid option: %1
204+echo.
205+echo Use BUILD /help for more information.
206+echo.
207+
208+goto done
209+
210+: execute
211+
212+if "%CONFIG%" NEQ "" set OPTIONS=%OPTIONS% -D:build.config=%CONFIG%
213+if "%RUNTIME%" NEQ "" set OPTIONS=%OPTIONS% -D:runtime.config=%RUNTIME%
214+
215+if "%COMMANDS%" EQU "" set COMMANDS=build
216+
217+%NANT% %OPTIONS% %CLEAN% %COMMANDS%
218+
219+goto done
220+
221+: usage
222+
223+echo Builds and tests NUnit for various targets
224+echo.
225+echo usage: BUILD [option [...] ] [ -- nantoptions ]
226+echo.
227+echo Options may be any of the following, in any order...
228+echo.
229+echo debug Builds debug configuration (default)
230+echo release Builds release configuration
231+echo.
232+echo net-4.5 Builds using .NET 4.5 framework (future)
233+echo net-4.0 Builds using .NET 4.0 framework (future)
234+echo net-3.5 Builds using .NET 3.5 framework (default)
235+echo net-2.0 Builds using .NET 2.0 framework
236+echo net-1.1 Builds using .NET 1.1 framework
237+echo net-1.0 Builds using .NET 1.0 framework
238+echo mono-4.0 Builds using Mono 4.0 profile (future)
239+echo mono-3.5 Builds using Mono 3.5 profile (default)
240+echo mono-2.0 Builds using Mono 2.0 profile
241+echo mono-1.0 Builds using Mono 1.0 profile
242+echo.
243+echo net Builds using default .NET version
244+echo mono Builds using default Mono profile
245+echo.
246+echo clean Cleans the output directory before building
247+echo clean-all Removes output directories for all runtimes
248+echo.
249+echo samples Builds the NUnit samples
250+echo tools Builds the NUnit tools
251+echo.
252+echo test Runs tests for a build using the console runner
253+echo gui-test Runs tests for a build using the NUnit gui
254+echo.
255+echo ?, /h, /help Displays this help message
256+echo.
257+echo Notes:
258+echo.
259+echo 1. The default .NET or Mono version to be used is selected
260+echo automatically by the NAnt script from those installed.
261+echo.
262+echo 2. When building under a framework version of 3.5 or higher,
263+echo the 2.0 framework is targeted for NUnit itself. Tests use
264+echo the specified higher level framework.
265+echo.
266+echo 3. Any arguments following '--' on the command line are passed
267+echo directly to the NAnt script.
268+echo.
269+
270+: done
271
272=== modified file 'nunit.sln'
273--- nunit.sln 2012-08-08 03:34:12 +0000
274+++ nunit.sln 2012-10-03 23:32:21 +0000
275@@ -1,266 +1,280 @@
276-
277-Microsoft Visual Studio Solution File, Format Version 11.00
278-# Visual Studio 2010
279-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{A65042E1-D8BC-48DD-8DE1-F0991F07EA77}"
280- ProjectSection(SolutionItems) = preProject
281- src\nunit.snk = src\nunit.snk
282- EndProjectSection
283-EndProject
284-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Scripts", "Scripts", "{A785FC02-6044-4864-BE24-4593CAD23A97}"
285- ProjectSection(SolutionItems) = preProject
286- scripts\nunit.build.targets = scripts\nunit.build.targets
287- scripts\nunit.common.targets = scripts\nunit.common.targets
288- scripts\nunit.package.targets = scripts\nunit.package.targets
289- EndProjectSection
290-EndProject
291-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "NUnitFramework", "NUnitFramework", "{A2FF9F1B-1854-479A-859C-6ECEBF045E4C}"
292-EndProject
293-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ClientUtilities", "ClientUtilities", "{D448BA20-BA70-4F70-AF53-4C0E6C1E97E7}"
294-EndProject
295-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ConsoleRunner", "ConsoleRunner", "{1DBAF726-8009-41CC-B82A-4EFE94CBEEFC}"
296-EndProject
297-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "GuiRunner", "GuiRunner", "{77D10207-CB02-4C3A-8734-5A5173E3C506}"
298-EndProject
299-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "NUnitCore", "NUnitCore", "{AEAED2BD-F22D-42C8-9047-F293BEF70EAB}"
300-EndProject
301-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "GuiComponents", "GuiComponents", "{168F8C38-129C-454A-B112-F456BC7F4FE4}"
302-EndProject
303-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "GuiException", "GuiException", "{35A92AA3-A1E6-426E-8D96-322F3EBF1C8D}"
304-EndProject
305-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{6142B985-EA14-4DE0-884F-E62D89949E1D}"
306-EndProject
307-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "NUnitMocks", "NUnitMocks", "{7740410A-54B5-4334-8DE3-6D6F616BD6A5}"
308-EndProject
309-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "PNUnit", "PNUnit", "{979724B8-6FAA-400F-B40D-EB653A815C87}"
310-EndProject
311-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "NUnitTestServer", "NUnitTestServer", "{D029F8FD-84E3-4AD3-8F1B-CCA0C856E659}"
312-EndProject
313-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ProjectEditor", "ProjectEditor", "{992367F7-9154-4424-B55E-3EF8673A2A36}"
314-EndProject
315-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit.framework.tests", "src\NUnitFramework\tests\nunit.framework.tests.csproj", "{8C326431-AE57-4645-ACC1-A90A0B425129}"
316-EndProject
317-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit.framework.dll", "src\NUnitFramework\framework\nunit.framework.dll.csproj", "{83DD7E12-A705-4DBA-9D71-09C8973D9382}"
318-EndProject
319-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit.util.tests", "src\ClientUtilities\tests\nunit.util.tests.csproj", "{74EF7165-117E-48ED-98EA-068EAE438E53}"
320-EndProject
321-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit.util.dll", "src\ClientUtilities\util\nunit.util.dll.csproj", "{61CE9CE5-943E-44D4-A381-814DC1406767}"
322-EndProject
323-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit-console.tests", "src\ConsoleRunner\tests\nunit-console.tests.csproj", "{8597D2C6-804D-48CB-BFC7-ED2404D389B0}"
324-EndProject
325-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit-console", "src\ConsoleRunner\nunit-console\nunit-console.csproj", "{9367EC89-6A38-42BA-9607-0DC288E4BC3A}"
326-EndProject
327-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit-console.exe", "src\ConsoleRunner\nunit-console-exe\nunit-console.exe.csproj", "{53BF8787-CB9C-4BB8-AFB4-605DD3A5CA0E}"
328-EndProject
329-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit-gui", "src\GuiRunner\nunit-gui\nunit-gui.csproj", "{3FF340D5-D3B4-4DF0-BAF1-98B3C00B6148}"
330-EndProject
331-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit-gui.tests", "src\GuiRunner\tests\nunit-gui.tests.csproj", "{AAD27267-DE1F-4F61-A1FB-D1680A5B8001}"
332-EndProject
333-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit-gui.exe", "src\GuiRunner\nunit-gui-exe\nunit-gui.exe.csproj", "{AAB186A4-FA3D-404D-AD78-7EB5BB861655}"
334-EndProject
335-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit.core.tests", "src\NUnitCore\tests\nunit.core.tests.csproj", "{DD758D21-E5D5-4D40-9450-5F65A32F359C}"
336-EndProject
337-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit.core.interfaces.dll", "src\NUnitCore\interfaces\nunit.core.interfaces.dll.csproj", "{435428F8-5995-4CE4-8022-93D595A8CC0F}"
338-EndProject
339-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit.core.dll", "src\NUnitCore\core\nunit.core.dll.csproj", "{EBD43A7F-AFCA-4281-BB53-5CDD91F966A3}"
340-EndProject
341-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit.uikit.tests", "src\GuiComponents\tests\nunit.uikit.tests.csproj", "{63EC3999-FA6B-4C5B-8805-5A88AF4CBD7B}"
342-EndProject
343-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit.uikit.dll", "src\GuiComponents\UiKit\nunit.uikit.dll.csproj", "{27531BBF-183D-4C3A-935B-D840B9F1A3A4}"
344-EndProject
345-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit.uiexception.tests", "src\GuiException\tests\nunit.uiexception.tests.csproj", "{092486D0-6AB9-4134-932F-0FDA10704455}"
346-EndProject
347-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit.uiexception.dll", "src\GuiException\UiException\nunit.uiexception.dll.csproj", "{3E87A106-EB20-4147-84C8-95B0BB43A1D4}"
348-EndProject
349-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "mock-assembly", "src\tests\mock-assembly\mock-assembly.csproj", "{2E368281-3BA8-4050-B05E-0E0E43F8F446}"
350-EndProject
351-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nonamespace-assembly", "src\tests\nonamespace-assembly\nonamespace-assembly.csproj", "{5110F0D2-8E50-46F8-9E17-7C8EBFECCA9D}"
352-EndProject
353-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "test-utilities", "src\tests\test-utilities\test-utilities.csproj", "{3E63AD0F-24D4-46BE-BEE4-5A3299847D86}"
354-EndProject
355-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "test-assembly", "src\tests\test-assembly\test-assembly.csproj", "{1960CAC4-9A82-47C5-A9B3-55BC37572C3C}"
356-EndProject
357-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit.mocks.tests", "src\NUnitMocks\tests\nunit.mocks.tests.csproj", "{8667C588-1A05-4773-A9E8-272EB302B8AB}"
358-EndProject
359-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit.mocks", "src\NUnitMocks\mocks\nunit.mocks.csproj", "{EEE7C98B-23E6-472D-9036-C2D53B0DFE7C}"
360-EndProject
361-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "pnunit-agent", "src\PNUnit\agent\pnunit-agent.csproj", "{621C27DA-CC29-4663-9FE4-BF5A67970C18}"
362-EndProject
363-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "pnunit-launcher", "src\PNUnit\launcher\pnunit-launcher.csproj", "{91FC5C92-E801-4446-B4D6-EAC5B56A4DB2}"
364-EndProject
365-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "pnunit.tests", "src\PNUnit\tests\pnunit.tests.csproj", "{319B9238-76BE-4335-9B4D-F8E43C4B124F}"
366-EndProject
367-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "pnunit.framework", "src\PNUnit\pnunit.framework\pnunit.framework.csproj", "{5261ABA1-98E6-4603-A4F0-59CAC307AC68}"
368-EndProject
369-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit-agent.exe", "src\NUnitTestServer\nunit-agent-exe\nunit-agent.exe.csproj", "{3E469CD9-FED2-4955-AE4C-669A74CA6767}"
370-EndProject
371-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit-editor", "src\ProjectEditor\editor\nunit-editor.csproj", "{ED57DCEC-3C16-4A90-BD3C-4D5BE5AD70FB}"
372-EndProject
373-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit-editor.tests", "src\ProjectEditor\tests\nunit-editor.tests.csproj", "{A9E1C1E9-AE97-4510-AD94-EAFADE425FBE}"
374-EndProject
375-Global
376- GlobalSection(SolutionConfigurationPlatforms) = preSolution
377- Debug|Any CPU = Debug|Any CPU
378- Release|Any CPU = Release|Any CPU
379- EndGlobalSection
380- GlobalSection(ProjectConfigurationPlatforms) = postSolution
381- {8C326431-AE57-4645-ACC1-A90A0B425129}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
382- {8C326431-AE57-4645-ACC1-A90A0B425129}.Debug|Any CPU.Build.0 = Debug|Any CPU
383- {8C326431-AE57-4645-ACC1-A90A0B425129}.Release|Any CPU.ActiveCfg = Release|Any CPU
384- {8C326431-AE57-4645-ACC1-A90A0B425129}.Release|Any CPU.Build.0 = Release|Any CPU
385- {83DD7E12-A705-4DBA-9D71-09C8973D9382}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
386- {83DD7E12-A705-4DBA-9D71-09C8973D9382}.Debug|Any CPU.Build.0 = Debug|Any CPU
387- {83DD7E12-A705-4DBA-9D71-09C8973D9382}.Release|Any CPU.ActiveCfg = Release|Any CPU
388- {83DD7E12-A705-4DBA-9D71-09C8973D9382}.Release|Any CPU.Build.0 = Release|Any CPU
389- {74EF7165-117E-48ED-98EA-068EAE438E53}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
390- {74EF7165-117E-48ED-98EA-068EAE438E53}.Debug|Any CPU.Build.0 = Debug|Any CPU
391- {74EF7165-117E-48ED-98EA-068EAE438E53}.Release|Any CPU.ActiveCfg = Release|Any CPU
392- {74EF7165-117E-48ED-98EA-068EAE438E53}.Release|Any CPU.Build.0 = Release|Any CPU
393- {61CE9CE5-943E-44D4-A381-814DC1406767}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
394- {61CE9CE5-943E-44D4-A381-814DC1406767}.Debug|Any CPU.Build.0 = Debug|Any CPU
395- {61CE9CE5-943E-44D4-A381-814DC1406767}.Release|Any CPU.ActiveCfg = Release|Any CPU
396- {61CE9CE5-943E-44D4-A381-814DC1406767}.Release|Any CPU.Build.0 = Release|Any CPU
397- {8597D2C6-804D-48CB-BFC7-ED2404D389B0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
398- {8597D2C6-804D-48CB-BFC7-ED2404D389B0}.Debug|Any CPU.Build.0 = Debug|Any CPU
399- {8597D2C6-804D-48CB-BFC7-ED2404D389B0}.Release|Any CPU.ActiveCfg = Release|Any CPU
400- {8597D2C6-804D-48CB-BFC7-ED2404D389B0}.Release|Any CPU.Build.0 = Release|Any CPU
401- {9367EC89-6A38-42BA-9607-0DC288E4BC3A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
402- {9367EC89-6A38-42BA-9607-0DC288E4BC3A}.Debug|Any CPU.Build.0 = Debug|Any CPU
403- {9367EC89-6A38-42BA-9607-0DC288E4BC3A}.Release|Any CPU.ActiveCfg = Release|Any CPU
404- {9367EC89-6A38-42BA-9607-0DC288E4BC3A}.Release|Any CPU.Build.0 = Release|Any CPU
405- {53BF8787-CB9C-4BB8-AFB4-605DD3A5CA0E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
406- {53BF8787-CB9C-4BB8-AFB4-605DD3A5CA0E}.Debug|Any CPU.Build.0 = Debug|Any CPU
407- {53BF8787-CB9C-4BB8-AFB4-605DD3A5CA0E}.Release|Any CPU.ActiveCfg = Release|Any CPU
408- {53BF8787-CB9C-4BB8-AFB4-605DD3A5CA0E}.Release|Any CPU.Build.0 = Release|Any CPU
409- {3FF340D5-D3B4-4DF0-BAF1-98B3C00B6148}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
410- {3FF340D5-D3B4-4DF0-BAF1-98B3C00B6148}.Debug|Any CPU.Build.0 = Debug|Any CPU
411- {3FF340D5-D3B4-4DF0-BAF1-98B3C00B6148}.Release|Any CPU.ActiveCfg = Release|Any CPU
412- {3FF340D5-D3B4-4DF0-BAF1-98B3C00B6148}.Release|Any CPU.Build.0 = Release|Any CPU
413- {AAD27267-DE1F-4F61-A1FB-D1680A5B8001}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
414- {AAD27267-DE1F-4F61-A1FB-D1680A5B8001}.Debug|Any CPU.Build.0 = Debug|Any CPU
415- {AAD27267-DE1F-4F61-A1FB-D1680A5B8001}.Release|Any CPU.ActiveCfg = Release|Any CPU
416- {AAD27267-DE1F-4F61-A1FB-D1680A5B8001}.Release|Any CPU.Build.0 = Release|Any CPU
417- {AAB186A4-FA3D-404D-AD78-7EB5BB861655}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
418- {AAB186A4-FA3D-404D-AD78-7EB5BB861655}.Debug|Any CPU.Build.0 = Debug|Any CPU
419- {AAB186A4-FA3D-404D-AD78-7EB5BB861655}.Release|Any CPU.ActiveCfg = Release|Any CPU
420- {AAB186A4-FA3D-404D-AD78-7EB5BB861655}.Release|Any CPU.Build.0 = Release|Any CPU
421- {DD758D21-E5D5-4D40-9450-5F65A32F359C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
422- {DD758D21-E5D5-4D40-9450-5F65A32F359C}.Debug|Any CPU.Build.0 = Debug|Any CPU
423- {DD758D21-E5D5-4D40-9450-5F65A32F359C}.Release|Any CPU.ActiveCfg = Release|Any CPU
424- {DD758D21-E5D5-4D40-9450-5F65A32F359C}.Release|Any CPU.Build.0 = Release|Any CPU
425- {435428F8-5995-4CE4-8022-93D595A8CC0F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
426- {435428F8-5995-4CE4-8022-93D595A8CC0F}.Debug|Any CPU.Build.0 = Debug|Any CPU
427- {435428F8-5995-4CE4-8022-93D595A8CC0F}.Release|Any CPU.ActiveCfg = Release|Any CPU
428- {435428F8-5995-4CE4-8022-93D595A8CC0F}.Release|Any CPU.Build.0 = Release|Any CPU
429- {EBD43A7F-AFCA-4281-BB53-5CDD91F966A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
430- {EBD43A7F-AFCA-4281-BB53-5CDD91F966A3}.Debug|Any CPU.Build.0 = Debug|Any CPU
431- {EBD43A7F-AFCA-4281-BB53-5CDD91F966A3}.Release|Any CPU.ActiveCfg = Release|Any CPU
432- {EBD43A7F-AFCA-4281-BB53-5CDD91F966A3}.Release|Any CPU.Build.0 = Release|Any CPU
433- {63EC3999-FA6B-4C5B-8805-5A88AF4CBD7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
434- {63EC3999-FA6B-4C5B-8805-5A88AF4CBD7B}.Debug|Any CPU.Build.0 = Debug|Any CPU
435- {63EC3999-FA6B-4C5B-8805-5A88AF4CBD7B}.Release|Any CPU.ActiveCfg = Release|Any CPU
436- {63EC3999-FA6B-4C5B-8805-5A88AF4CBD7B}.Release|Any CPU.Build.0 = Release|Any CPU
437- {27531BBF-183D-4C3A-935B-D840B9F1A3A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
438- {27531BBF-183D-4C3A-935B-D840B9F1A3A4}.Debug|Any CPU.Build.0 = Debug|Any CPU
439- {27531BBF-183D-4C3A-935B-D840B9F1A3A4}.Release|Any CPU.ActiveCfg = Release|Any CPU
440- {27531BBF-183D-4C3A-935B-D840B9F1A3A4}.Release|Any CPU.Build.0 = Release|Any CPU
441- {092486D0-6AB9-4134-932F-0FDA10704455}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
442- {092486D0-6AB9-4134-932F-0FDA10704455}.Debug|Any CPU.Build.0 = Debug|Any CPU
443- {092486D0-6AB9-4134-932F-0FDA10704455}.Release|Any CPU.ActiveCfg = Release|Any CPU
444- {092486D0-6AB9-4134-932F-0FDA10704455}.Release|Any CPU.Build.0 = Release|Any CPU
445- {3E87A106-EB20-4147-84C8-95B0BB43A1D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
446- {3E87A106-EB20-4147-84C8-95B0BB43A1D4}.Debug|Any CPU.Build.0 = Debug|Any CPU
447- {3E87A106-EB20-4147-84C8-95B0BB43A1D4}.Release|Any CPU.ActiveCfg = Release|Any CPU
448- {3E87A106-EB20-4147-84C8-95B0BB43A1D4}.Release|Any CPU.Build.0 = Release|Any CPU
449- {2E368281-3BA8-4050-B05E-0E0E43F8F446}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
450- {2E368281-3BA8-4050-B05E-0E0E43F8F446}.Debug|Any CPU.Build.0 = Debug|Any CPU
451- {2E368281-3BA8-4050-B05E-0E0E43F8F446}.Release|Any CPU.ActiveCfg = Release|Any CPU
452- {2E368281-3BA8-4050-B05E-0E0E43F8F446}.Release|Any CPU.Build.0 = Release|Any CPU
453- {5110F0D2-8E50-46F8-9E17-7C8EBFECCA9D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
454- {5110F0D2-8E50-46F8-9E17-7C8EBFECCA9D}.Debug|Any CPU.Build.0 = Debug|Any CPU
455- {5110F0D2-8E50-46F8-9E17-7C8EBFECCA9D}.Release|Any CPU.ActiveCfg = Release|Any CPU
456- {5110F0D2-8E50-46F8-9E17-7C8EBFECCA9D}.Release|Any CPU.Build.0 = Release|Any CPU
457- {3E63AD0F-24D4-46BE-BEE4-5A3299847D86}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
458- {3E63AD0F-24D4-46BE-BEE4-5A3299847D86}.Debug|Any CPU.Build.0 = Debug|Any CPU
459- {3E63AD0F-24D4-46BE-BEE4-5A3299847D86}.Release|Any CPU.ActiveCfg = Release|Any CPU
460- {3E63AD0F-24D4-46BE-BEE4-5A3299847D86}.Release|Any CPU.Build.0 = Release|Any CPU
461- {1960CAC4-9A82-47C5-A9B3-55BC37572C3C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
462- {1960CAC4-9A82-47C5-A9B3-55BC37572C3C}.Debug|Any CPU.Build.0 = Debug|Any CPU
463- {1960CAC4-9A82-47C5-A9B3-55BC37572C3C}.Release|Any CPU.ActiveCfg = Release|Any CPU
464- {1960CAC4-9A82-47C5-A9B3-55BC37572C3C}.Release|Any CPU.Build.0 = Release|Any CPU
465- {8667C588-1A05-4773-A9E8-272EB302B8AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
466- {8667C588-1A05-4773-A9E8-272EB302B8AB}.Debug|Any CPU.Build.0 = Debug|Any CPU
467- {8667C588-1A05-4773-A9E8-272EB302B8AB}.Release|Any CPU.ActiveCfg = Release|Any CPU
468- {8667C588-1A05-4773-A9E8-272EB302B8AB}.Release|Any CPU.Build.0 = Release|Any CPU
469- {EEE7C98B-23E6-472D-9036-C2D53B0DFE7C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
470- {EEE7C98B-23E6-472D-9036-C2D53B0DFE7C}.Debug|Any CPU.Build.0 = Debug|Any CPU
471- {EEE7C98B-23E6-472D-9036-C2D53B0DFE7C}.Release|Any CPU.ActiveCfg = Release|Any CPU
472- {EEE7C98B-23E6-472D-9036-C2D53B0DFE7C}.Release|Any CPU.Build.0 = Release|Any CPU
473- {621C27DA-CC29-4663-9FE4-BF5A67970C18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
474- {621C27DA-CC29-4663-9FE4-BF5A67970C18}.Debug|Any CPU.Build.0 = Debug|Any CPU
475- {621C27DA-CC29-4663-9FE4-BF5A67970C18}.Release|Any CPU.ActiveCfg = Release|Any CPU
476- {621C27DA-CC29-4663-9FE4-BF5A67970C18}.Release|Any CPU.Build.0 = Release|Any CPU
477- {91FC5C92-E801-4446-B4D6-EAC5B56A4DB2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
478- {91FC5C92-E801-4446-B4D6-EAC5B56A4DB2}.Debug|Any CPU.Build.0 = Debug|Any CPU
479- {91FC5C92-E801-4446-B4D6-EAC5B56A4DB2}.Release|Any CPU.ActiveCfg = Release|Any CPU
480- {91FC5C92-E801-4446-B4D6-EAC5B56A4DB2}.Release|Any CPU.Build.0 = Release|Any CPU
481- {319B9238-76BE-4335-9B4D-F8E43C4B124F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
482- {319B9238-76BE-4335-9B4D-F8E43C4B124F}.Debug|Any CPU.Build.0 = Debug|Any CPU
483- {319B9238-76BE-4335-9B4D-F8E43C4B124F}.Release|Any CPU.ActiveCfg = Release|Any CPU
484- {319B9238-76BE-4335-9B4D-F8E43C4B124F}.Release|Any CPU.Build.0 = Release|Any CPU
485- {5261ABA1-98E6-4603-A4F0-59CAC307AC68}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
486- {5261ABA1-98E6-4603-A4F0-59CAC307AC68}.Debug|Any CPU.Build.0 = Debug|Any CPU
487- {5261ABA1-98E6-4603-A4F0-59CAC307AC68}.Release|Any CPU.ActiveCfg = Release|Any CPU
488- {5261ABA1-98E6-4603-A4F0-59CAC307AC68}.Release|Any CPU.Build.0 = Release|Any CPU
489- {3E469CD9-FED2-4955-AE4C-669A74CA6767}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
490- {3E469CD9-FED2-4955-AE4C-669A74CA6767}.Debug|Any CPU.Build.0 = Debug|Any CPU
491- {3E469CD9-FED2-4955-AE4C-669A74CA6767}.Release|Any CPU.ActiveCfg = Release|Any CPU
492- {3E469CD9-FED2-4955-AE4C-669A74CA6767}.Release|Any CPU.Build.0 = Release|Any CPU
493- {ED57DCEC-3C16-4A90-BD3C-4D5BE5AD70FB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
494- {ED57DCEC-3C16-4A90-BD3C-4D5BE5AD70FB}.Debug|Any CPU.Build.0 = Debug|Any CPU
495- {ED57DCEC-3C16-4A90-BD3C-4D5BE5AD70FB}.Release|Any CPU.ActiveCfg = Release|Any CPU
496- {ED57DCEC-3C16-4A90-BD3C-4D5BE5AD70FB}.Release|Any CPU.Build.0 = Release|Any CPU
497- {A9E1C1E9-AE97-4510-AD94-EAFADE425FBE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
498- {A9E1C1E9-AE97-4510-AD94-EAFADE425FBE}.Debug|Any CPU.Build.0 = Debug|Any CPU
499- {A9E1C1E9-AE97-4510-AD94-EAFADE425FBE}.Release|Any CPU.ActiveCfg = Release|Any CPU
500- {A9E1C1E9-AE97-4510-AD94-EAFADE425FBE}.Release|Any CPU.Build.0 = Release|Any CPU
501- EndGlobalSection
502- GlobalSection(SolutionProperties) = preSolution
503- HideSolutionNode = FALSE
504- EndGlobalSection
505- GlobalSection(NestedProjects) = preSolution
506- {A785FC02-6044-4864-BE24-4593CAD23A97} = {A65042E1-D8BC-48DD-8DE1-F0991F07EA77}
507- {8C326431-AE57-4645-ACC1-A90A0B425129} = {A2FF9F1B-1854-479A-859C-6ECEBF045E4C}
508- {83DD7E12-A705-4DBA-9D71-09C8973D9382} = {A2FF9F1B-1854-479A-859C-6ECEBF045E4C}
509- {74EF7165-117E-48ED-98EA-068EAE438E53} = {D448BA20-BA70-4F70-AF53-4C0E6C1E97E7}
510- {61CE9CE5-943E-44D4-A381-814DC1406767} = {D448BA20-BA70-4F70-AF53-4C0E6C1E97E7}
511- {8597D2C6-804D-48CB-BFC7-ED2404D389B0} = {1DBAF726-8009-41CC-B82A-4EFE94CBEEFC}
512- {9367EC89-6A38-42BA-9607-0DC288E4BC3A} = {1DBAF726-8009-41CC-B82A-4EFE94CBEEFC}
513- {53BF8787-CB9C-4BB8-AFB4-605DD3A5CA0E} = {1DBAF726-8009-41CC-B82A-4EFE94CBEEFC}
514- {3FF340D5-D3B4-4DF0-BAF1-98B3C00B6148} = {77D10207-CB02-4C3A-8734-5A5173E3C506}
515- {AAD27267-DE1F-4F61-A1FB-D1680A5B8001} = {77D10207-CB02-4C3A-8734-5A5173E3C506}
516- {AAB186A4-FA3D-404D-AD78-7EB5BB861655} = {77D10207-CB02-4C3A-8734-5A5173E3C506}
517- {DD758D21-E5D5-4D40-9450-5F65A32F359C} = {AEAED2BD-F22D-42C8-9047-F293BEF70EAB}
518- {435428F8-5995-4CE4-8022-93D595A8CC0F} = {AEAED2BD-F22D-42C8-9047-F293BEF70EAB}
519- {EBD43A7F-AFCA-4281-BB53-5CDD91F966A3} = {AEAED2BD-F22D-42C8-9047-F293BEF70EAB}
520- {63EC3999-FA6B-4C5B-8805-5A88AF4CBD7B} = {168F8C38-129C-454A-B112-F456BC7F4FE4}
521- {27531BBF-183D-4C3A-935B-D840B9F1A3A4} = {168F8C38-129C-454A-B112-F456BC7F4FE4}
522- {092486D0-6AB9-4134-932F-0FDA10704455} = {35A92AA3-A1E6-426E-8D96-322F3EBF1C8D}
523- {3E87A106-EB20-4147-84C8-95B0BB43A1D4} = {35A92AA3-A1E6-426E-8D96-322F3EBF1C8D}
524- {2E368281-3BA8-4050-B05E-0E0E43F8F446} = {6142B985-EA14-4DE0-884F-E62D89949E1D}
525- {5110F0D2-8E50-46F8-9E17-7C8EBFECCA9D} = {6142B985-EA14-4DE0-884F-E62D89949E1D}
526- {3E63AD0F-24D4-46BE-BEE4-5A3299847D86} = {6142B985-EA14-4DE0-884F-E62D89949E1D}
527- {1960CAC4-9A82-47C5-A9B3-55BC37572C3C} = {6142B985-EA14-4DE0-884F-E62D89949E1D}
528- {8667C588-1A05-4773-A9E8-272EB302B8AB} = {7740410A-54B5-4334-8DE3-6D6F616BD6A5}
529- {EEE7C98B-23E6-472D-9036-C2D53B0DFE7C} = {7740410A-54B5-4334-8DE3-6D6F616BD6A5}
530- {621C27DA-CC29-4663-9FE4-BF5A67970C18} = {979724B8-6FAA-400F-B40D-EB653A815C87}
531- {91FC5C92-E801-4446-B4D6-EAC5B56A4DB2} = {979724B8-6FAA-400F-B40D-EB653A815C87}
532- {319B9238-76BE-4335-9B4D-F8E43C4B124F} = {979724B8-6FAA-400F-B40D-EB653A815C87}
533- {5261ABA1-98E6-4603-A4F0-59CAC307AC68} = {979724B8-6FAA-400F-B40D-EB653A815C87}
534- {3E469CD9-FED2-4955-AE4C-669A74CA6767} = {D029F8FD-84E3-4AD3-8F1B-CCA0C856E659}
535- {ED57DCEC-3C16-4A90-BD3C-4D5BE5AD70FB} = {992367F7-9154-4424-B55E-3EF8673A2A36}
536- {A9E1C1E9-AE97-4510-AD94-EAFADE425FBE} = {992367F7-9154-4424-B55E-3EF8673A2A36}
537- EndGlobalSection
538- GlobalSection(MonoDevelopProperties) = preSolution
539- StartupItem = src\ConsoleRunner\nunit-console-exe\nunit-console.exe.csproj
540- EndGlobalSection
541-EndGlobal
542+
543+Microsoft Visual Studio Solution File, Format Version 12.00
544+# Visual Studio 2012
545+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{A65042E1-D8BC-48DD-8DE1-F0991F07EA77}"
546+ ProjectSection(SolutionItems) = preProject
547+ src\nunit.snk = src\nunit.snk
548+ EndProjectSection
549+EndProject
550+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Scripts", "Scripts", "{A785FC02-6044-4864-BE24-4593CAD23A97}"
551+ ProjectSection(SolutionItems) = preProject
552+ scripts\nunit.build.targets = scripts\nunit.build.targets
553+ scripts\nunit.common.targets = scripts\nunit.common.targets
554+ scripts\nunit.package.targets = scripts\nunit.package.targets
555+ EndProjectSection
556+EndProject
557+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "NUnitFramework", "NUnitFramework", "{A2FF9F1B-1854-479A-859C-6ECEBF045E4C}"
558+EndProject
559+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ClientUtilities", "ClientUtilities", "{D448BA20-BA70-4F70-AF53-4C0E6C1E97E7}"
560+EndProject
561+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ConsoleRunner", "ConsoleRunner", "{1DBAF726-8009-41CC-B82A-4EFE94CBEEFC}"
562+EndProject
563+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "GuiRunner", "GuiRunner", "{77D10207-CB02-4C3A-8734-5A5173E3C506}"
564+EndProject
565+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "NUnitCore", "NUnitCore", "{AEAED2BD-F22D-42C8-9047-F293BEF70EAB}"
566+EndProject
567+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "GuiComponents", "GuiComponents", "{168F8C38-129C-454A-B112-F456BC7F4FE4}"
568+EndProject
569+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "GuiException", "GuiException", "{35A92AA3-A1E6-426E-8D96-322F3EBF1C8D}"
570+EndProject
571+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{6142B985-EA14-4DE0-884F-E62D89949E1D}"
572+EndProject
573+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "NUnitMocks", "NUnitMocks", "{7740410A-54B5-4334-8DE3-6D6F616BD6A5}"
574+EndProject
575+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "PNUnit", "PNUnit", "{979724B8-6FAA-400F-B40D-EB653A815C87}"
576+EndProject
577+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "NUnitTestServer", "NUnitTestServer", "{D029F8FD-84E3-4AD3-8F1B-CCA0C856E659}"
578+EndProject
579+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ProjectEditor", "ProjectEditor", "{992367F7-9154-4424-B55E-3EF8673A2A36}"
580+EndProject
581+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit.framework.tests", "src\NUnitFramework\tests\nunit.framework.tests.csproj", "{8C326431-AE57-4645-ACC1-A90A0B425129}"
582+EndProject
583+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit.framework.dll", "src\NUnitFramework\framework\nunit.framework.dll.csproj", "{83DD7E12-A705-4DBA-9D71-09C8973D9382}"
584+EndProject
585+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit.util.tests", "src\ClientUtilities\tests\nunit.util.tests.csproj", "{74EF7165-117E-48ED-98EA-068EAE438E53}"
586+EndProject
587+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit.util.dll", "src\ClientUtilities\util\nunit.util.dll.csproj", "{61CE9CE5-943E-44D4-A381-814DC1406767}"
588+EndProject
589+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit-console.tests", "src\ConsoleRunner\tests\nunit-console.tests.csproj", "{8597D2C6-804D-48CB-BFC7-ED2404D389B0}"
590+EndProject
591+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit-console", "src\ConsoleRunner\nunit-console\nunit-console.csproj", "{9367EC89-6A38-42BA-9607-0DC288E4BC3A}"
592+EndProject
593+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit-console.exe", "src\ConsoleRunner\nunit-console-exe\nunit-console.exe.csproj", "{53BF8787-CB9C-4BB8-AFB4-605DD3A5CA0E}"
594+EndProject
595+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit-gui", "src\GuiRunner\nunit-gui\nunit-gui.csproj", "{3FF340D5-D3B4-4DF0-BAF1-98B3C00B6148}"
596+EndProject
597+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit-gui.tests", "src\GuiRunner\tests\nunit-gui.tests.csproj", "{AAD27267-DE1F-4F61-A1FB-D1680A5B8001}"
598+EndProject
599+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit-gui.exe", "src\GuiRunner\nunit-gui-exe\nunit-gui.exe.csproj", "{AAB186A4-FA3D-404D-AD78-7EB5BB861655}"
600+EndProject
601+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit.core.tests", "src\NUnitCore\tests\nunit.core.tests.csproj", "{DD758D21-E5D5-4D40-9450-5F65A32F359C}"
602+EndProject
603+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit.core.interfaces.dll", "src\NUnitCore\interfaces\nunit.core.interfaces.dll.csproj", "{435428F8-5995-4CE4-8022-93D595A8CC0F}"
604+EndProject
605+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit.core.dll", "src\NUnitCore\core\nunit.core.dll.csproj", "{EBD43A7F-AFCA-4281-BB53-5CDD91F966A3}"
606+EndProject
607+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit.uikit.tests", "src\GuiComponents\tests\nunit.uikit.tests.csproj", "{63EC3999-FA6B-4C5B-8805-5A88AF4CBD7B}"
608+EndProject
609+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit.uikit.dll", "src\GuiComponents\UiKit\nunit.uikit.dll.csproj", "{27531BBF-183D-4C3A-935B-D840B9F1A3A4}"
610+EndProject
611+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit.uiexception.tests", "src\GuiException\tests\nunit.uiexception.tests.csproj", "{092486D0-6AB9-4134-932F-0FDA10704455}"
612+EndProject
613+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit.uiexception.dll", "src\GuiException\UiException\nunit.uiexception.dll.csproj", "{3E87A106-EB20-4147-84C8-95B0BB43A1D4}"
614+EndProject
615+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "mock-assembly", "src\tests\mock-assembly\mock-assembly.csproj", "{2E368281-3BA8-4050-B05E-0E0E43F8F446}"
616+EndProject
617+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nonamespace-assembly", "src\tests\nonamespace-assembly\nonamespace-assembly.csproj", "{5110F0D2-8E50-46F8-9E17-7C8EBFECCA9D}"
618+EndProject
619+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "test-utilities", "src\tests\test-utilities\test-utilities.csproj", "{3E63AD0F-24D4-46BE-BEE4-5A3299847D86}"
620+EndProject
621+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "test-assembly", "src\tests\test-assembly\test-assembly.csproj", "{1960CAC4-9A82-47C5-A9B3-55BC37572C3C}"
622+EndProject
623+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit.mocks.tests", "src\NUnitMocks\tests\nunit.mocks.tests.csproj", "{8667C588-1A05-4773-A9E8-272EB302B8AB}"
624+EndProject
625+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit.mocks", "src\NUnitMocks\mocks\nunit.mocks.csproj", "{EEE7C98B-23E6-472D-9036-C2D53B0DFE7C}"
626+EndProject
627+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "pnunit-agent", "src\PNUnit\agent\pnunit-agent.csproj", "{621C27DA-CC29-4663-9FE4-BF5A67970C18}"
628+EndProject
629+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "pnunit-launcher", "src\PNUnit\launcher\pnunit-launcher.csproj", "{91FC5C92-E801-4446-B4D6-EAC5B56A4DB2}"
630+EndProject
631+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "pnunit.tests", "src\PNUnit\tests\pnunit.tests.csproj", "{319B9238-76BE-4335-9B4D-F8E43C4B124F}"
632+EndProject
633+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "pnunit.framework", "src\PNUnit\pnunit.framework\pnunit.framework.csproj", "{5261ABA1-98E6-4603-A4F0-59CAC307AC68}"
634+EndProject
635+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit-agent.exe", "src\NUnitTestServer\nunit-agent-exe\nunit-agent.exe.csproj", "{3E469CD9-FED2-4955-AE4C-669A74CA6767}"
636+EndProject
637+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit-editor", "src\ProjectEditor\editor\nunit-editor.csproj", "{ED57DCEC-3C16-4A90-BD3C-4D5BE5AD70FB}"
638+EndProject
639+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit-editor.tests", "src\ProjectEditor\tests\nunit-editor.tests.csproj", "{A9E1C1E9-AE97-4510-AD94-EAFADE425FBE}"
640+EndProject
641+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit.core.tests.net45", "src\NUnitCore\tests-net45\nunit.core.tests.net45.csproj", "{689A54F0-2B54-4D15-96A7-D8B6E6FE32B1}"
642+EndProject
643+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "test-assembly-net45", "src\tests\test-assembly-net45\test-assembly-net45.csproj", "{74CCEAEA-CDBF-4FE0-BF0D-914C3C44ECE9}"
644+EndProject
645+Global
646+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
647+ Debug|Any CPU = Debug|Any CPU
648+ Release|Any CPU = Release|Any CPU
649+ EndGlobalSection
650+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
651+ {8C326431-AE57-4645-ACC1-A90A0B425129}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
652+ {8C326431-AE57-4645-ACC1-A90A0B425129}.Debug|Any CPU.Build.0 = Debug|Any CPU
653+ {8C326431-AE57-4645-ACC1-A90A0B425129}.Release|Any CPU.ActiveCfg = Release|Any CPU
654+ {8C326431-AE57-4645-ACC1-A90A0B425129}.Release|Any CPU.Build.0 = Release|Any CPU
655+ {83DD7E12-A705-4DBA-9D71-09C8973D9382}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
656+ {83DD7E12-A705-4DBA-9D71-09C8973D9382}.Debug|Any CPU.Build.0 = Debug|Any CPU
657+ {83DD7E12-A705-4DBA-9D71-09C8973D9382}.Release|Any CPU.ActiveCfg = Release|Any CPU
658+ {83DD7E12-A705-4DBA-9D71-09C8973D9382}.Release|Any CPU.Build.0 = Release|Any CPU
659+ {74EF7165-117E-48ED-98EA-068EAE438E53}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
660+ {74EF7165-117E-48ED-98EA-068EAE438E53}.Debug|Any CPU.Build.0 = Debug|Any CPU
661+ {74EF7165-117E-48ED-98EA-068EAE438E53}.Release|Any CPU.ActiveCfg = Release|Any CPU
662+ {74EF7165-117E-48ED-98EA-068EAE438E53}.Release|Any CPU.Build.0 = Release|Any CPU
663+ {61CE9CE5-943E-44D4-A381-814DC1406767}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
664+ {61CE9CE5-943E-44D4-A381-814DC1406767}.Debug|Any CPU.Build.0 = Debug|Any CPU
665+ {61CE9CE5-943E-44D4-A381-814DC1406767}.Release|Any CPU.ActiveCfg = Release|Any CPU
666+ {61CE9CE5-943E-44D4-A381-814DC1406767}.Release|Any CPU.Build.0 = Release|Any CPU
667+ {8597D2C6-804D-48CB-BFC7-ED2404D389B0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
668+ {8597D2C6-804D-48CB-BFC7-ED2404D389B0}.Debug|Any CPU.Build.0 = Debug|Any CPU
669+ {8597D2C6-804D-48CB-BFC7-ED2404D389B0}.Release|Any CPU.ActiveCfg = Release|Any CPU
670+ {8597D2C6-804D-48CB-BFC7-ED2404D389B0}.Release|Any CPU.Build.0 = Release|Any CPU
671+ {9367EC89-6A38-42BA-9607-0DC288E4BC3A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
672+ {9367EC89-6A38-42BA-9607-0DC288E4BC3A}.Debug|Any CPU.Build.0 = Debug|Any CPU
673+ {9367EC89-6A38-42BA-9607-0DC288E4BC3A}.Release|Any CPU.ActiveCfg = Release|Any CPU
674+ {9367EC89-6A38-42BA-9607-0DC288E4BC3A}.Release|Any CPU.Build.0 = Release|Any CPU
675+ {53BF8787-CB9C-4BB8-AFB4-605DD3A5CA0E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
676+ {53BF8787-CB9C-4BB8-AFB4-605DD3A5CA0E}.Debug|Any CPU.Build.0 = Debug|Any CPU
677+ {53BF8787-CB9C-4BB8-AFB4-605DD3A5CA0E}.Release|Any CPU.ActiveCfg = Release|Any CPU
678+ {53BF8787-CB9C-4BB8-AFB4-605DD3A5CA0E}.Release|Any CPU.Build.0 = Release|Any CPU
679+ {3FF340D5-D3B4-4DF0-BAF1-98B3C00B6148}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
680+ {3FF340D5-D3B4-4DF0-BAF1-98B3C00B6148}.Debug|Any CPU.Build.0 = Debug|Any CPU
681+ {3FF340D5-D3B4-4DF0-BAF1-98B3C00B6148}.Release|Any CPU.ActiveCfg = Release|Any CPU
682+ {3FF340D5-D3B4-4DF0-BAF1-98B3C00B6148}.Release|Any CPU.Build.0 = Release|Any CPU
683+ {AAD27267-DE1F-4F61-A1FB-D1680A5B8001}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
684+ {AAD27267-DE1F-4F61-A1FB-D1680A5B8001}.Debug|Any CPU.Build.0 = Debug|Any CPU
685+ {AAD27267-DE1F-4F61-A1FB-D1680A5B8001}.Release|Any CPU.ActiveCfg = Release|Any CPU
686+ {AAD27267-DE1F-4F61-A1FB-D1680A5B8001}.Release|Any CPU.Build.0 = Release|Any CPU
687+ {AAB186A4-FA3D-404D-AD78-7EB5BB861655}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
688+ {AAB186A4-FA3D-404D-AD78-7EB5BB861655}.Debug|Any CPU.Build.0 = Debug|Any CPU
689+ {AAB186A4-FA3D-404D-AD78-7EB5BB861655}.Release|Any CPU.ActiveCfg = Release|Any CPU
690+ {AAB186A4-FA3D-404D-AD78-7EB5BB861655}.Release|Any CPU.Build.0 = Release|Any CPU
691+ {DD758D21-E5D5-4D40-9450-5F65A32F359C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
692+ {DD758D21-E5D5-4D40-9450-5F65A32F359C}.Debug|Any CPU.Build.0 = Debug|Any CPU
693+ {DD758D21-E5D5-4D40-9450-5F65A32F359C}.Release|Any CPU.ActiveCfg = Release|Any CPU
694+ {DD758D21-E5D5-4D40-9450-5F65A32F359C}.Release|Any CPU.Build.0 = Release|Any CPU
695+ {435428F8-5995-4CE4-8022-93D595A8CC0F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
696+ {435428F8-5995-4CE4-8022-93D595A8CC0F}.Debug|Any CPU.Build.0 = Debug|Any CPU
697+ {435428F8-5995-4CE4-8022-93D595A8CC0F}.Release|Any CPU.ActiveCfg = Release|Any CPU
698+ {435428F8-5995-4CE4-8022-93D595A8CC0F}.Release|Any CPU.Build.0 = Release|Any CPU
699+ {EBD43A7F-AFCA-4281-BB53-5CDD91F966A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
700+ {EBD43A7F-AFCA-4281-BB53-5CDD91F966A3}.Debug|Any CPU.Build.0 = Debug|Any CPU
701+ {EBD43A7F-AFCA-4281-BB53-5CDD91F966A3}.Release|Any CPU.ActiveCfg = Release|Any CPU
702+ {EBD43A7F-AFCA-4281-BB53-5CDD91F966A3}.Release|Any CPU.Build.0 = Release|Any CPU
703+ {63EC3999-FA6B-4C5B-8805-5A88AF4CBD7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
704+ {63EC3999-FA6B-4C5B-8805-5A88AF4CBD7B}.Debug|Any CPU.Build.0 = Debug|Any CPU
705+ {63EC3999-FA6B-4C5B-8805-5A88AF4CBD7B}.Release|Any CPU.ActiveCfg = Release|Any CPU
706+ {63EC3999-FA6B-4C5B-8805-5A88AF4CBD7B}.Release|Any CPU.Build.0 = Release|Any CPU
707+ {27531BBF-183D-4C3A-935B-D840B9F1A3A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
708+ {27531BBF-183D-4C3A-935B-D840B9F1A3A4}.Debug|Any CPU.Build.0 = Debug|Any CPU
709+ {27531BBF-183D-4C3A-935B-D840B9F1A3A4}.Release|Any CPU.ActiveCfg = Release|Any CPU
710+ {27531BBF-183D-4C3A-935B-D840B9F1A3A4}.Release|Any CPU.Build.0 = Release|Any CPU
711+ {092486D0-6AB9-4134-932F-0FDA10704455}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
712+ {092486D0-6AB9-4134-932F-0FDA10704455}.Debug|Any CPU.Build.0 = Debug|Any CPU
713+ {092486D0-6AB9-4134-932F-0FDA10704455}.Release|Any CPU.ActiveCfg = Release|Any CPU
714+ {092486D0-6AB9-4134-932F-0FDA10704455}.Release|Any CPU.Build.0 = Release|Any CPU
715+ {3E87A106-EB20-4147-84C8-95B0BB43A1D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
716+ {3E87A106-EB20-4147-84C8-95B0BB43A1D4}.Debug|Any CPU.Build.0 = Debug|Any CPU
717+ {3E87A106-EB20-4147-84C8-95B0BB43A1D4}.Release|Any CPU.ActiveCfg = Release|Any CPU
718+ {3E87A106-EB20-4147-84C8-95B0BB43A1D4}.Release|Any CPU.Build.0 = Release|Any CPU
719+ {2E368281-3BA8-4050-B05E-0E0E43F8F446}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
720+ {2E368281-3BA8-4050-B05E-0E0E43F8F446}.Debug|Any CPU.Build.0 = Debug|Any CPU
721+ {2E368281-3BA8-4050-B05E-0E0E43F8F446}.Release|Any CPU.ActiveCfg = Release|Any CPU
722+ {2E368281-3BA8-4050-B05E-0E0E43F8F446}.Release|Any CPU.Build.0 = Release|Any CPU
723+ {5110F0D2-8E50-46F8-9E17-7C8EBFECCA9D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
724+ {5110F0D2-8E50-46F8-9E17-7C8EBFECCA9D}.Debug|Any CPU.Build.0 = Debug|Any CPU
725+ {5110F0D2-8E50-46F8-9E17-7C8EBFECCA9D}.Release|Any CPU.ActiveCfg = Release|Any CPU
726+ {5110F0D2-8E50-46F8-9E17-7C8EBFECCA9D}.Release|Any CPU.Build.0 = Release|Any CPU
727+ {3E63AD0F-24D4-46BE-BEE4-5A3299847D86}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
728+ {3E63AD0F-24D4-46BE-BEE4-5A3299847D86}.Debug|Any CPU.Build.0 = Debug|Any CPU
729+ {3E63AD0F-24D4-46BE-BEE4-5A3299847D86}.Release|Any CPU.ActiveCfg = Release|Any CPU
730+ {3E63AD0F-24D4-46BE-BEE4-5A3299847D86}.Release|Any CPU.Build.0 = Release|Any CPU
731+ {1960CAC4-9A82-47C5-A9B3-55BC37572C3C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
732+ {1960CAC4-9A82-47C5-A9B3-55BC37572C3C}.Debug|Any CPU.Build.0 = Debug|Any CPU
733+ {1960CAC4-9A82-47C5-A9B3-55BC37572C3C}.Release|Any CPU.ActiveCfg = Release|Any CPU
734+ {1960CAC4-9A82-47C5-A9B3-55BC37572C3C}.Release|Any CPU.Build.0 = Release|Any CPU
735+ {8667C588-1A05-4773-A9E8-272EB302B8AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
736+ {8667C588-1A05-4773-A9E8-272EB302B8AB}.Debug|Any CPU.Build.0 = Debug|Any CPU
737+ {8667C588-1A05-4773-A9E8-272EB302B8AB}.Release|Any CPU.ActiveCfg = Release|Any CPU
738+ {8667C588-1A05-4773-A9E8-272EB302B8AB}.Release|Any CPU.Build.0 = Release|Any CPU
739+ {EEE7C98B-23E6-472D-9036-C2D53B0DFE7C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
740+ {EEE7C98B-23E6-472D-9036-C2D53B0DFE7C}.Debug|Any CPU.Build.0 = Debug|Any CPU
741+ {EEE7C98B-23E6-472D-9036-C2D53B0DFE7C}.Release|Any CPU.ActiveCfg = Release|Any CPU
742+ {EEE7C98B-23E6-472D-9036-C2D53B0DFE7C}.Release|Any CPU.Build.0 = Release|Any CPU
743+ {621C27DA-CC29-4663-9FE4-BF5A67970C18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
744+ {621C27DA-CC29-4663-9FE4-BF5A67970C18}.Debug|Any CPU.Build.0 = Debug|Any CPU
745+ {621C27DA-CC29-4663-9FE4-BF5A67970C18}.Release|Any CPU.ActiveCfg = Release|Any CPU
746+ {621C27DA-CC29-4663-9FE4-BF5A67970C18}.Release|Any CPU.Build.0 = Release|Any CPU
747+ {91FC5C92-E801-4446-B4D6-EAC5B56A4DB2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
748+ {91FC5C92-E801-4446-B4D6-EAC5B56A4DB2}.Debug|Any CPU.Build.0 = Debug|Any CPU
749+ {91FC5C92-E801-4446-B4D6-EAC5B56A4DB2}.Release|Any CPU.ActiveCfg = Release|Any CPU
750+ {91FC5C92-E801-4446-B4D6-EAC5B56A4DB2}.Release|Any CPU.Build.0 = Release|Any CPU
751+ {319B9238-76BE-4335-9B4D-F8E43C4B124F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
752+ {319B9238-76BE-4335-9B4D-F8E43C4B124F}.Debug|Any CPU.Build.0 = Debug|Any CPU
753+ {319B9238-76BE-4335-9B4D-F8E43C4B124F}.Release|Any CPU.ActiveCfg = Release|Any CPU
754+ {319B9238-76BE-4335-9B4D-F8E43C4B124F}.Release|Any CPU.Build.0 = Release|Any CPU
755+ {5261ABA1-98E6-4603-A4F0-59CAC307AC68}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
756+ {5261ABA1-98E6-4603-A4F0-59CAC307AC68}.Debug|Any CPU.Build.0 = Debug|Any CPU
757+ {5261ABA1-98E6-4603-A4F0-59CAC307AC68}.Release|Any CPU.ActiveCfg = Release|Any CPU
758+ {5261ABA1-98E6-4603-A4F0-59CAC307AC68}.Release|Any CPU.Build.0 = Release|Any CPU
759+ {3E469CD9-FED2-4955-AE4C-669A74CA6767}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
760+ {3E469CD9-FED2-4955-AE4C-669A74CA6767}.Debug|Any CPU.Build.0 = Debug|Any CPU
761+ {3E469CD9-FED2-4955-AE4C-669A74CA6767}.Release|Any CPU.ActiveCfg = Release|Any CPU
762+ {3E469CD9-FED2-4955-AE4C-669A74CA6767}.Release|Any CPU.Build.0 = Release|Any CPU
763+ {ED57DCEC-3C16-4A90-BD3C-4D5BE5AD70FB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
764+ {ED57DCEC-3C16-4A90-BD3C-4D5BE5AD70FB}.Debug|Any CPU.Build.0 = Debug|Any CPU
765+ {ED57DCEC-3C16-4A90-BD3C-4D5BE5AD70FB}.Release|Any CPU.ActiveCfg = Release|Any CPU
766+ {ED57DCEC-3C16-4A90-BD3C-4D5BE5AD70FB}.Release|Any CPU.Build.0 = Release|Any CPU
767+ {A9E1C1E9-AE97-4510-AD94-EAFADE425FBE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
768+ {A9E1C1E9-AE97-4510-AD94-EAFADE425FBE}.Debug|Any CPU.Build.0 = Debug|Any CPU
769+ {A9E1C1E9-AE97-4510-AD94-EAFADE425FBE}.Release|Any CPU.ActiveCfg = Release|Any CPU
770+ {A9E1C1E9-AE97-4510-AD94-EAFADE425FBE}.Release|Any CPU.Build.0 = Release|Any CPU
771+ {689A54F0-2B54-4D15-96A7-D8B6E6FE32B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
772+ {689A54F0-2B54-4D15-96A7-D8B6E6FE32B1}.Debug|Any CPU.Build.0 = Debug|Any CPU
773+ {689A54F0-2B54-4D15-96A7-D8B6E6FE32B1}.Release|Any CPU.ActiveCfg = Release|Any CPU
774+ {689A54F0-2B54-4D15-96A7-D8B6E6FE32B1}.Release|Any CPU.Build.0 = Release|Any CPU
775+ {74CCEAEA-CDBF-4FE0-BF0D-914C3C44ECE9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
776+ {74CCEAEA-CDBF-4FE0-BF0D-914C3C44ECE9}.Debug|Any CPU.Build.0 = Debug|Any CPU
777+ {74CCEAEA-CDBF-4FE0-BF0D-914C3C44ECE9}.Release|Any CPU.ActiveCfg = Release|Any CPU
778+ {74CCEAEA-CDBF-4FE0-BF0D-914C3C44ECE9}.Release|Any CPU.Build.0 = Release|Any CPU
779+ EndGlobalSection
780+ GlobalSection(SolutionProperties) = preSolution
781+ HideSolutionNode = FALSE
782+ EndGlobalSection
783+ GlobalSection(NestedProjects) = preSolution
784+ {A785FC02-6044-4864-BE24-4593CAD23A97} = {A65042E1-D8BC-48DD-8DE1-F0991F07EA77}
785+ {8C326431-AE57-4645-ACC1-A90A0B425129} = {A2FF9F1B-1854-479A-859C-6ECEBF045E4C}
786+ {83DD7E12-A705-4DBA-9D71-09C8973D9382} = {A2FF9F1B-1854-479A-859C-6ECEBF045E4C}
787+ {74EF7165-117E-48ED-98EA-068EAE438E53} = {D448BA20-BA70-4F70-AF53-4C0E6C1E97E7}
788+ {61CE9CE5-943E-44D4-A381-814DC1406767} = {D448BA20-BA70-4F70-AF53-4C0E6C1E97E7}
789+ {8597D2C6-804D-48CB-BFC7-ED2404D389B0} = {1DBAF726-8009-41CC-B82A-4EFE94CBEEFC}
790+ {9367EC89-6A38-42BA-9607-0DC288E4BC3A} = {1DBAF726-8009-41CC-B82A-4EFE94CBEEFC}
791+ {53BF8787-CB9C-4BB8-AFB4-605DD3A5CA0E} = {1DBAF726-8009-41CC-B82A-4EFE94CBEEFC}
792+ {3FF340D5-D3B4-4DF0-BAF1-98B3C00B6148} = {77D10207-CB02-4C3A-8734-5A5173E3C506}
793+ {AAD27267-DE1F-4F61-A1FB-D1680A5B8001} = {77D10207-CB02-4C3A-8734-5A5173E3C506}
794+ {AAB186A4-FA3D-404D-AD78-7EB5BB861655} = {77D10207-CB02-4C3A-8734-5A5173E3C506}
795+ {DD758D21-E5D5-4D40-9450-5F65A32F359C} = {AEAED2BD-F22D-42C8-9047-F293BEF70EAB}
796+ {435428F8-5995-4CE4-8022-93D595A8CC0F} = {AEAED2BD-F22D-42C8-9047-F293BEF70EAB}
797+ {EBD43A7F-AFCA-4281-BB53-5CDD91F966A3} = {AEAED2BD-F22D-42C8-9047-F293BEF70EAB}
798+ {689A54F0-2B54-4D15-96A7-D8B6E6FE32B1} = {AEAED2BD-F22D-42C8-9047-F293BEF70EAB}
799+ {63EC3999-FA6B-4C5B-8805-5A88AF4CBD7B} = {168F8C38-129C-454A-B112-F456BC7F4FE4}
800+ {27531BBF-183D-4C3A-935B-D840B9F1A3A4} = {168F8C38-129C-454A-B112-F456BC7F4FE4}
801+ {092486D0-6AB9-4134-932F-0FDA10704455} = {35A92AA3-A1E6-426E-8D96-322F3EBF1C8D}
802+ {3E87A106-EB20-4147-84C8-95B0BB43A1D4} = {35A92AA3-A1E6-426E-8D96-322F3EBF1C8D}
803+ {2E368281-3BA8-4050-B05E-0E0E43F8F446} = {6142B985-EA14-4DE0-884F-E62D89949E1D}
804+ {5110F0D2-8E50-46F8-9E17-7C8EBFECCA9D} = {6142B985-EA14-4DE0-884F-E62D89949E1D}
805+ {3E63AD0F-24D4-46BE-BEE4-5A3299847D86} = {6142B985-EA14-4DE0-884F-E62D89949E1D}
806+ {1960CAC4-9A82-47C5-A9B3-55BC37572C3C} = {6142B985-EA14-4DE0-884F-E62D89949E1D}
807+ {74CCEAEA-CDBF-4FE0-BF0D-914C3C44ECE9} = {6142B985-EA14-4DE0-884F-E62D89949E1D}
808+ {8667C588-1A05-4773-A9E8-272EB302B8AB} = {7740410A-54B5-4334-8DE3-6D6F616BD6A5}
809+ {EEE7C98B-23E6-472D-9036-C2D53B0DFE7C} = {7740410A-54B5-4334-8DE3-6D6F616BD6A5}
810+ {621C27DA-CC29-4663-9FE4-BF5A67970C18} = {979724B8-6FAA-400F-B40D-EB653A815C87}
811+ {91FC5C92-E801-4446-B4D6-EAC5B56A4DB2} = {979724B8-6FAA-400F-B40D-EB653A815C87}
812+ {319B9238-76BE-4335-9B4D-F8E43C4B124F} = {979724B8-6FAA-400F-B40D-EB653A815C87}
813+ {5261ABA1-98E6-4603-A4F0-59CAC307AC68} = {979724B8-6FAA-400F-B40D-EB653A815C87}
814+ {3E469CD9-FED2-4955-AE4C-669A74CA6767} = {D029F8FD-84E3-4AD3-8F1B-CCA0C856E659}
815+ {ED57DCEC-3C16-4A90-BD3C-4D5BE5AD70FB} = {992367F7-9154-4424-B55E-3EF8673A2A36}
816+ {A9E1C1E9-AE97-4510-AD94-EAFADE425FBE} = {992367F7-9154-4424-B55E-3EF8673A2A36}
817+ EndGlobalSection
818+ GlobalSection(MonoDevelopProperties) = preSolution
819+ StartupItem = src\ConsoleRunner\nunit-console-exe\nunit-console.exe.csproj
820+ EndGlobalSection
821+EndGlobal
822
823=== modified file 'scripts/nunit.build.targets'
824--- scripts/nunit.build.targets 2012-07-10 20:38:33 +0000
825+++ scripts/nunit.build.targets 2012-10-03 23:32:21 +0000
826@@ -106,8 +106,10 @@
827 <call target="build-gui" if="${runtime.version >= '2.0'}" />
828
829 <!-- Copy test project for this runtime framework -->
830+ <property name="runtime.testproj" value="NUnitTests.v3.nunit"
831+ if="${framework::exists('net-4.5')}"/>
832 <property name="runtime.testproj" value="NUnitTests.v2.nunit"
833- if="${runtime.version >= '2.0'}"/>
834+ if="${runtime.version >= '2.0'}" unless="${framework::exists('net-4.5')}"/>
835 <property name="runtime.testproj" value="NUnitTests.v1.nunit"
836 unless="${runtime.version >= '2.0'}"/>
837
838@@ -405,11 +407,13 @@
839 <include name="tests/mock-assembly/mock-assembly.build" />
840 <include name="tests/nonamespace-assembly/nonamespace-assembly.build" />
841 <include name="tests/test-assembly/test-assembly.build" />
842+ <include name="tests/test-assembly-net45/test-assembly-net45.build" if="${framework::exists('net-4.5')}" />
843 <include name="tests/test-utilities/test-utilities.build" />
844
845 <!-- NUnit Base Tests -->
846 <include name="NUnitFramework/tests/nunit.framework.tests.build" />
847 <include name="NUnitCore/tests/nunit.core.tests.build" />
848+ <include name="NUnitCore/tests-net45/nunit.core.tests.net45.build" if="${framework::exists('net-4.5')}" />
849 <include name="NUnitMocks/tests/nunit.mocks.tests.build" />
850 <include name="ClientUtilities/tests/nunit.util.tests.build" />
851
852
853=== modified file 'scripts/nunit.common.targets'
854--- scripts/nunit.common.targets 2012-08-08 03:19:39 +0000
855+++ scripts/nunit.common.targets 2012-10-03 23:32:21 +0000
856@@ -48,7 +48,7 @@
857 The first .NET and Mono frameworks found are the
858 respective net and mono defaults. -->
859 <property name="supported.frameworks"
860- value="net-3.5,net-2.0,net-4.0,net-1.1,net-1.0,mono-3.5,mono-2.0,mono-1.0"/>
861+ value="net-3.5,net-2.0,net-4.0,net-4.5,net-1.1,net-1.0,mono-3.5,mono-2.0,mono-1.0"/>
862
863 <!-- Packages we normally create -->
864 <property name="standard.packages" value="net-3.5,net-1.1"
865@@ -239,6 +239,16 @@
866 <property name="supported.test.platforms" value="net-4.0"/>
867
868 </target>
869+
870+ <target name="set-net-4.5-runtime-config">
871+
872+ <property name="runtime.platform" value="net"/>
873+ <property name="runtime.version" value="4.5"/>
874+ <property name="target.version" value="2.0"/>
875+ <property name="runtime.defines" value="MSNET,CLR_4_0,NET_4_5,CS_5_0"/>
876+ <property name="supported.test.platforms" value="net-4.5"/>
877+
878+ </target>
879
880 <target name="set-mono-1.0-runtime-config">
881
882
883=== modified file 'scripts/nunit.package.targets'
884--- scripts/nunit.package.targets 2012-07-10 20:38:33 +0000
885+++ scripts/nunit.package.targets 2012-10-03 23:32:21 +0000
886@@ -549,11 +549,13 @@
887 <include name="tests/mock-assembly/mock-assembly.build" />
888 <include name="tests/nonamespace-assembly/nonamespace-assembly.build" />
889 <include name="tests/test-assembly/test-assembly.build" />
890+ <include name="tests/test-assembly-net45/test-assembly-net45.build" if="${framework::exists('net-4.5')}" />
891 <include name="tests/test-utilities/test-utilities.build" />
892
893 <!-- NUnit Base Tests -->
894 <include name="NUnitFramework/tests/nunit.framework.tests.build" />
895 <include name="NUnitCore/tests/nunit.core.tests.build" />
896+ <include name="NUnitCore/tests-net45/nunit.core.tests.net45.build" if="${framework::exists('net-4.5')}" />
897 <include name="NUnitMocks/tests/nunit.mocks.tests.build" />
898 <include name="ClientUtilities/tests/nunit.util.tests.build" />
899
900
901=== modified file 'src/ClientUtilities/util/ProcessRunner.cs'
902--- src/ClientUtilities/util/ProcessRunner.cs 2012-09-17 22:23:53 +0000
903+++ src/ClientUtilities/util/ProcessRunner.cs 2012-10-03 23:32:21 +0000
904@@ -44,8 +44,8 @@
905 public override bool Load(TestPackage package)
906 {
907 log.Info("Loading " + package.Name);
908- Unload();
909-
910+ Unload();
911+
912 runtimeFramework = package.Settings["RuntimeFramework"] as RuntimeFramework;
913 if ( runtimeFramework == null )
914 runtimeFramework = RuntimeFramework.CurrentFramework;
915
916=== modified file 'src/ClientUtilities/util/RuntimeFrameworkSelector.cs'
917--- src/ClientUtilities/util/RuntimeFrameworkSelector.cs 2011-03-06 02:39:31 +0000
918+++ src/ClientUtilities/util/RuntimeFrameworkSelector.cs 2012-10-03 23:32:21 +0000
919@@ -3,7 +3,8 @@
920 // This is free software licensed under the NUnit license. You may
921 // obtain a copy of the license at http://nunit.org
922 // ****************************************************************
923-using System;
924+using System;
925+using System.Diagnostics;
926 using System.IO;
927 using System.Reflection;
928 using NUnit.Core;
929@@ -22,8 +23,8 @@
930 /// </summary>
931 /// <param name="package">A TestPackage</param>
932 /// <returns>The selected RuntimeFramework</returns>
933- public RuntimeFramework SelectRuntimeFramework(TestPackage package)
934- {
935+ public RuntimeFramework SelectRuntimeFramework(TestPackage package)
936+ {
937 RuntimeFramework currentFramework = RuntimeFramework.CurrentFramework;
938 RuntimeFramework requestedFramework = package.Settings["RuntimeFramework"] as RuntimeFramework;
939
940
941=== modified file 'src/ClientUtilities/util/Services/TestAgency.cs'
942--- src/ClientUtilities/util/Services/TestAgency.cs 2012-09-17 22:23:53 +0000
943+++ src/ClientUtilities/util/Services/TestAgency.cs 2012-10-03 23:32:21 +0000
944@@ -119,8 +119,8 @@
945 return GetNUnitBinDirectory(version) != null;
946 }
947
948- public TestAgent GetAgent()
949- {
950+ public TestAgent GetAgent()
951+ {
952 return GetAgent( RuntimeFramework.CurrentFramework, Timeout.Infinite );
953 }
954
955@@ -130,8 +130,8 @@
956 }
957
958 public TestAgent GetAgent(RuntimeFramework framework, int waitTime)
959- {
960- log.Info("Getting agent for use under {0}", framework);
961+ {
962+ log.Info("Getting agent for use under {0}", framework);
963
964 if (!framework.IsAvailable)
965 throw new ArgumentException(
966
967=== modified file 'src/ConsoleRunner/nunit-console/ConsoleUi.cs'
968--- src/ConsoleRunner/nunit-console/ConsoleUi.cs 2012-07-08 17:20:44 +0000
969+++ src/ConsoleRunner/nunit-console/ConsoleUi.cs 2012-10-03 23:32:21 +0000
970@@ -2,8 +2,10 @@
971 // This is free software licensed under the NUnit license. You
972 // may obtain a copy of the license as well as information regarding
973 // copyright ownership at http://nunit.org.
974-// ****************************************************************
975-
976+// ****************************************************************
977+
978+using System.Diagnostics;
979+
980 namespace NUnit.ConsoleRunner
981 {
982 using System;
983@@ -61,8 +63,8 @@
984 StreamWriter errorStreamWriter = new StreamWriter( Path.Combine(workDir, options.err) );
985 errorStreamWriter.AutoFlush = true;
986 errorWriter = errorStreamWriter;
987- }
988-
989+ }
990+
991 TestPackage package = MakeTestPackage(options);
992
993 ProcessModel processModel = package.Settings.Contains("ProcessModel")
994
995=== modified file 'src/GuiException/tests/Controls/TestCodeBox.cs'
996--- src/GuiException/tests/Controls/TestCodeBox.cs 2011-03-30 20:37:44 +0000
997+++ src/GuiException/tests/Controls/TestCodeBox.cs 2012-10-03 23:32:21 +0000
998@@ -3,7 +3,7 @@
999 // obtain a copy of the license at http://nunit.org
1000 // ****************************************************************
1001
1002-#if NET_3_5 || NET_4_0
1003+#if NET_3_5 || NET_4_0 || NET_4_5
1004 using NSubstitute;
1005 using NUnit.Framework;
1006 using System.Drawing;
1007
1008=== modified file 'src/GuiException/tests/Controls/TestErrorBrowser.cs'
1009--- src/GuiException/tests/Controls/TestErrorBrowser.cs 2011-03-30 20:37:44 +0000
1010+++ src/GuiException/tests/Controls/TestErrorBrowser.cs 2012-10-03 23:32:21 +0000
1011@@ -3,7 +3,7 @@
1012 // obtain a copy of the license at http://nunit.org
1013 // ****************************************************************
1014
1015-#if NET_3_5 || NET_4_0
1016+#if NET_3_5 || NET_4_0 || NET_4_5
1017 using System;
1018 using NSubstitute;
1019 using NUnit.Framework;
1020
1021=== modified file 'src/GuiException/tests/Controls/TestErrorList.cs'
1022--- src/GuiException/tests/Controls/TestErrorList.cs 2011-03-30 20:37:44 +0000
1023+++ src/GuiException/tests/Controls/TestErrorList.cs 2012-10-03 23:32:21 +0000
1024@@ -3,7 +3,7 @@
1025 // obtain a copy of the license at http://nunit.org
1026 // ****************************************************************
1027
1028-#if NET_3_5 || NET_4_0
1029+#if NET_3_5 || NET_4_0 || NET_4_5
1030 using System;
1031 using NSubstitute;
1032 using NUnit.Framework;
1033
1034=== modified file 'src/GuiException/tests/Controls/TestErrorToolbar.cs'
1035--- src/GuiException/tests/Controls/TestErrorToolbar.cs 2011-03-30 20:37:44 +0000
1036+++ src/GuiException/tests/Controls/TestErrorToolbar.cs 2012-10-03 23:32:21 +0000
1037@@ -3,7 +3,7 @@
1038 // obtain a copy of the license at http://nunit.org
1039 // ****************************************************************
1040
1041-#if NET_3_5 || NET_4_0
1042+#if NET_3_5 || NET_4_0 || NET_4_5
1043 using System;
1044 using NSubstitute;
1045 using NUnit.Framework;
1046
1047=== modified file 'src/GuiException/tests/Controls/TestSourceCodeDisplay.cs'
1048--- src/GuiException/tests/Controls/TestSourceCodeDisplay.cs 2011-03-30 20:37:44 +0000
1049+++ src/GuiException/tests/Controls/TestSourceCodeDisplay.cs 2012-10-03 23:32:21 +0000
1050@@ -3,7 +3,7 @@
1051 // obtain a copy of the license at http://nunit.org
1052 // ****************************************************************
1053
1054-#if NET_3_5 || NET_4_0
1055+#if NET_3_5 || NET_4_0 || NET_4_5
1056 using NSubstitute;
1057 using NUnit.Framework;
1058 using NUnit.UiException.Controls;
1059
1060=== added file 'src/NUnitCore/core/AsyncSynchronizationContext.cs'
1061--- src/NUnitCore/core/AsyncSynchronizationContext.cs 1970-01-01 00:00:00 +0000
1062+++ src/NUnitCore/core/AsyncSynchronizationContext.cs 2012-10-03 23:32:21 +0000
1063@@ -0,0 +1,45 @@
1064+using System;
1065+using System.Collections.Generic;
1066+using System.Threading;
1067+
1068+namespace NUnit.Core
1069+{
1070+ public class AsyncSynchronizationContext : SynchronizationContext
1071+ {
1072+ private readonly AutoResetEvent _operationCompleted = new AutoResetEvent(false);
1073+ private readonly IList<Exception> _exceptions = new List<Exception>();
1074+
1075+ public IList<Exception> Exceptions
1076+ {
1077+ get { return _exceptions; }
1078+ }
1079+
1080+ public override void Send(SendOrPostCallback d, object state)
1081+ {
1082+ throw new InvalidOperationException("Sending to this synchronization context is not supported");
1083+ }
1084+
1085+ public override void Post(SendOrPostCallback d, object state)
1086+ {
1087+ try
1088+ {
1089+ d(state);
1090+ }
1091+ catch (Exception e)
1092+ {
1093+ _exceptions.Add(e);
1094+ }
1095+ }
1096+
1097+ public override void OperationCompleted()
1098+ {
1099+ base.OperationCompleted();
1100+ _operationCompleted.Set();
1101+ }
1102+
1103+ public void WaitForOperationCompleted()
1104+ {
1105+ _operationCompleted.WaitOne();
1106+ }
1107+ }
1108+}
1109\ No newline at end of file
1110
1111=== modified file 'src/NUnitCore/core/Builders/NUnitTestCaseBuilder.cs'
1112--- src/NUnitCore/core/Builders/NUnitTestCaseBuilder.cs 2012-02-19 05:59:50 +0000
1113+++ src/NUnitCore/core/Builders/NUnitTestCaseBuilder.cs 2012-10-03 23:32:21 +0000
1114@@ -1,421 +1,432 @@
1115-// ****************************************************************
1116-// Copyright 2008, Charlie Poole
1117-// This is free software licensed under the NUnit license. You may
1118-// obtain a copy of the license at http://nunit.org.
1119-// ****************************************************************
1120-
1121-using System;
1122-using System.Reflection;
1123-using NUnit.Core.Extensibility;
1124-
1125-namespace NUnit.Core.Builders
1126-{
1127- /// <summary>
1128- /// Class to build ether a parameterized or a normal NUnitTestMethod.
1129- /// There are four cases that the builder must deal with:
1130- /// 1. The method needs no params and none are provided
1131- /// 2. The method needs params and they are provided
1132- /// 3. The method needs no params but they are provided in error
1133- /// 4. The method needs params but they are not provided
1134- /// This could have been done using two different builders, but it
1135- /// turned out to be simpler to have just one. The BuildFrom method
1136- /// takes a different branch depending on whether any parameters are
1137- /// provided, but all four cases are dealt with in lower-level methods
1138- /// </summary>
1139- public class NUnitTestCaseBuilder : ITestCaseBuilder2
1140- {
1141- #region ITestCaseBuilder Methods
1142- /// <summary>
1143- /// Determines if the method can be used to build an NUnit test
1144- /// test method of some kind. The method must normally be marked
1145- /// with an identifying attriute for this to be true. If the test
1146- /// config file sets AllowOldStyleTests to true, then any method beginning
1147- /// "test..." (case-insensitive) is treated as a test unless
1148- /// it is also marked as a setup or teardown method.
1149- ///
1150- /// Note that this method does not check that the signature
1151- /// of the method for validity. If we did that here, any
1152- /// test methods with invalid signatures would be passed
1153- /// over in silence in the test run. Since we want such
1154- /// methods to be reported, the check for validity is made
1155- /// in BuildFrom rather than here.
1156- /// </summary>
1157- /// <param name="method">A MethodInfo for the method being used as a test method</param>
1158- /// <param name="suite">The test suite being built, to which the new test would be added</param>
1159- /// <returns>True if the builder can create a test case from this method</returns>
1160- public bool CanBuildFrom(MethodInfo method)
1161- {
1162- return Reflect.HasAttribute(method, NUnitFramework.TestAttribute, false)
1163- || Reflect.HasAttribute(method, NUnitFramework.TestCaseAttribute, false)
1164- || Reflect.HasAttribute(method, NUnitFramework.TestCaseSourceAttribute, false)
1165- || Reflect.HasAttribute(method, NUnitFramework.TheoryAttribute, false);
1166- }
1167-
1168- /// <summary>
1169- /// Build a Test from the provided MethodInfo. Depending on
1170- /// whether the method takes arguments and on the availability
1171- /// of test case data, this method may return a single test
1172- /// or a group of tests contained in a ParameterizedMethodSuite.
1173- /// </summary>
1174- /// <param name="method">The MethodInfo for which a test is to be built</param>
1175- /// <param name="suite">The test fixture being populated, or null</param>
1176- /// <returns>A Test representing one or more method invocations</returns>
1177- public Test BuildFrom(MethodInfo method)
1178- {
1179- return BuildFrom(method, null);
1180- }
1181-
1182- #region ITestCaseBuilder2 Members
1183-
1184- public bool CanBuildFrom(MethodInfo method, Test parentSuite)
1185- {
1186- return CanBuildFrom(method);
1187- }
1188-
1189- public Test BuildFrom(MethodInfo method, Test parentSuite)
1190- {
1191- return CoreExtensions.Host.TestCaseProviders.HasTestCasesFor(method)
1192- ? BuildParameterizedMethodSuite(method, parentSuite)
1193- : BuildSingleTestMethod(method, parentSuite, null);
1194- }
1195-
1196- #endregion
1197-
1198- /// <summary>
1199- /// Builds a ParameterizedMetodSuite containing individual
1200- /// test cases for each set of parameters provided for
1201- /// this method.
1202- /// </summary>
1203- /// <param name="method">The MethodInfo for which a test is to be built</param>
1204- /// <returns>A ParameterizedMethodSuite populated with test cases</returns>
1205- public static Test BuildParameterizedMethodSuite(MethodInfo method, Test parentSuite)
1206- {
1207- ParameterizedMethodSuite methodSuite = new ParameterizedMethodSuite(method);
1208- NUnitFramework.ApplyCommonAttributes(method, methodSuite);
1209-
1210- if (parentSuite != null)
1211- {
1212- if (parentSuite.RunState == RunState.NotRunnable && methodSuite.RunState != RunState.NotRunnable)
1213- {
1214- methodSuite.RunState = RunState.NotRunnable;
1215- methodSuite.IgnoreReason = parentSuite.IgnoreReason;
1216- }
1217-
1218- if (parentSuite.RunState == RunState.Ignored && methodSuite.RunState != RunState.Ignored && methodSuite.RunState != RunState.NotRunnable)
1219- {
1220- methodSuite.RunState = RunState.Ignored;
1221- methodSuite.IgnoreReason = parentSuite.IgnoreReason;
1222- }
1223- }
1224-
1225- foreach (object source in CoreExtensions.Host.TestCaseProviders.GetTestCasesFor(method, parentSuite))
1226- {
1227- ParameterSet parms;
1228-
1229- if (source == null)
1230- {
1231- parms = new ParameterSet();
1232- parms.Arguments = new object[] { null };
1233- }
1234- else
1235- parms = source as ParameterSet;
1236-
1237- if (parms == null)
1238- {
1239- if (source.GetType().GetInterface("NUnit.Framework.ITestCaseData") != null)
1240- parms = ParameterSet.FromDataSource(source);
1241- else
1242- {
1243- parms = new ParameterSet();
1244-
1245- ParameterInfo[] parameters = method.GetParameters();
1246- Type sourceType = source.GetType();
1247-
1248- if (parameters.Length == 1 && parameters[0].ParameterType.IsAssignableFrom(sourceType))
1249- parms.Arguments = new object[] { source };
1250- else if (source is object[])
1251- parms.Arguments = (object[])source;
1252- else if (source is Array)
1253- {
1254- Array array = (Array)source;
1255- if (array.Rank == 1)
1256- {
1257- parms.Arguments = new object[array.Length];
1258- for (int i = 0; i < array.Length; i++)
1259- parms.Arguments[i] = (object)array.GetValue(i);
1260- }
1261- }
1262- else
1263- parms.Arguments = new object[] { source };
1264- }
1265- }
1266-
1267- TestMethod test = BuildSingleTestMethod(method, parentSuite, parms);
1268-
1269- methodSuite.Add(test);
1270- }
1271-
1272- return methodSuite;
1273- }
1274-
1275- /// <summary>
1276- /// Builds a single NUnitTestMethod, either as a child of the fixture
1277- /// or as one of a set of test cases under a ParameterizedTestMethodSuite.
1278- /// </summary>
1279- /// <param name="method">The MethodInfo from which to construct the TestMethod</param>
1280- /// <param name="parms">The ParameterSet to be used, or null</param>
1281- /// <returns></returns>
1282- public static NUnitTestMethod BuildSingleTestMethod(MethodInfo method, Test parentSuite, ParameterSet parms)
1283- {
1284- NUnitTestMethod testMethod = new NUnitTestMethod(method);
1285-
1286- string prefix = method.ReflectedType.FullName;
1287-
1288- if (parentSuite != null)
1289- {
1290- prefix = parentSuite.TestName.FullName;
1291- testMethod.TestName.FullName = prefix + "." + testMethod.TestName.Name;
1292- }
1293-
1294- if (CheckTestMethodSignature(testMethod, parms))
1295- {
1296- if (parms == null)
1297- NUnitFramework.ApplyCommonAttributes(method, testMethod);
1298- NUnitFramework.ApplyExpectedExceptionAttribute(method, testMethod);
1299- }
1300-
1301- if (parms != null)
1302- {
1303- // NOTE: After the call to CheckTestMethodSignature, the Method
1304- // property of testMethod may no longer be the same as the
1305- // original MethodInfo, so we reassign it here.
1306- method = testMethod.Method;
1307-
1308- if (parms.TestName != null)
1309- {
1310- testMethod.TestName.Name = parms.TestName;
1311- testMethod.TestName.FullName = prefix + "." + parms.TestName;
1312- }
1313- else if (parms.OriginalArguments != null)
1314- {
1315- string name = MethodHelper.GetDisplayName(method, parms.OriginalArguments);
1316- testMethod.TestName.Name = name;
1317- testMethod.TestName.FullName = prefix + "." + name;
1318- }
1319-
1320- if (parms.Ignored)
1321- {
1322- testMethod.RunState = RunState.Ignored;
1323- testMethod.IgnoreReason = parms.IgnoreReason;
1324- }
1325- else if (parms.Explicit)
1326- {
1327- testMethod.RunState = RunState.Explicit;
1328- }
1329-
1330- if (parms.ExpectedExceptionName != null)
1331- testMethod.exceptionProcessor = new ExpectedExceptionProcessor(testMethod, parms);
1332-
1333- foreach (string key in parms.Properties.Keys)
1334- testMethod.Properties[key] = parms.Properties[key];
1335-
1336- // Description is stored in parms.Properties
1337- if (parms.Description != null)
1338- testMethod.Description = parms.Description;
1339- }
1340-
1341- //if (testMethod.BuilderException != null && testMethod.RunState != RunState.NotRunnable)
1342- //{
1343- // testMethod.RunState = RunState.NotRunnable;
1344- // testMethod.IgnoreReason = testMethod.BuilderException.Message;
1345- //}
1346-
1347- if (parentSuite != null)
1348- {
1349- if (parentSuite.RunState == RunState.NotRunnable && testMethod.RunState != RunState.NotRunnable)
1350- {
1351- testMethod.RunState = RunState.NotRunnable;
1352- testMethod.IgnoreReason = parentSuite.IgnoreReason;
1353- }
1354-
1355- if (parentSuite.RunState == RunState.Ignored && testMethod.RunState != RunState.Ignored && testMethod.RunState != RunState.NotRunnable)
1356- {
1357- testMethod.RunState = RunState.Ignored;
1358- testMethod.IgnoreReason = parentSuite.IgnoreReason;
1359- }
1360- }
1361-
1362- return testMethod;
1363- }
1364- #endregion
1365-
1366- #region Helper Methods
1367- /// <summary>
1368- /// Helper method that checks the signature of a TestMethod and
1369- /// any supplied parameters to determine if the test is valid.
1370- ///
1371- /// Currently, NUnitTestMethods are required to be public,
1372- /// non-abstract methods, either static or instance,
1373- /// returning void. They may take arguments but the values must
1374- /// be provided or the TestMethod is not considered runnable.
1375- ///
1376- /// Methods not meeting these criteria will be marked as
1377- /// non-runnable and the method will return false in that case.
1378- /// </summary>
1379- /// <param name="testMethod">The TestMethod to be checked. If it
1380- /// is found to be non-runnable, it will be modified.</param>
1381- /// <param name="parms">Parameters to be used for this test, or null</param>
1382- /// <returns>True if the method signature is valid, false if not</returns>
1383- private static bool CheckTestMethodSignature(TestMethod testMethod, ParameterSet parms)
1384- {
1385- if (testMethod.Method.IsAbstract)
1386- {
1387- testMethod.RunState = RunState.NotRunnable;
1388- testMethod.IgnoreReason = "Method is abstract";
1389- return false;
1390- }
1391-
1392- if (!testMethod.Method.IsPublic)
1393- {
1394- testMethod.RunState = RunState.NotRunnable;
1395- testMethod.IgnoreReason = "Method is not public";
1396- return false;
1397- }
1398-
1399- ParameterInfo[] parameters = testMethod.Method.GetParameters();
1400- int argsNeeded = parameters.Length;
1401-
1402- object[] arglist = null;
1403- int argsProvided = 0;
1404-
1405- if (parms != null)
1406- {
1407- testMethod.arguments = parms.Arguments;
1408- testMethod.hasExpectedResult = parms.HasExpectedResult;
1409- if (testMethod.hasExpectedResult)
1410- testMethod.expectedResult = parms.Result;
1411- testMethod.RunState = parms.RunState;
1412- testMethod.IgnoreReason = parms.IgnoreReason;
1413- testMethod.BuilderException = parms.ProviderException;
1414-
1415- arglist = parms.Arguments;
1416-
1417- if (arglist != null)
1418- argsProvided = arglist.Length;
1419-
1420- if (testMethod.RunState != RunState.Runnable)
1421- return false;
1422- }
1423-
1424- if (!testMethod.Method.ReturnType.Equals(typeof(void)) &&
1425- (parms == null || !parms.HasExpectedResult && parms.ExpectedExceptionName == null))
1426- {
1427- testMethod.RunState = RunState.NotRunnable;
1428- testMethod.IgnoreReason = "Method has non-void return value";
1429- return false;
1430- }
1431-
1432- if (argsProvided > 0 && argsNeeded == 0)
1433- {
1434- testMethod.RunState = RunState.NotRunnable;
1435- testMethod.IgnoreReason = "Arguments provided for method not taking any";
1436- return false;
1437- }
1438-
1439- if (argsProvided == 0 && argsNeeded > 0)
1440- {
1441- testMethod.RunState = RunState.NotRunnable;
1442- testMethod.IgnoreReason = "No arguments were provided";
1443- return false;
1444- }
1445-
1446- //if (argsProvided > argsNeeded)
1447- //{
1448- // ParameterInfo lastParameter = parameters[argsNeeded - 1];
1449- // Type lastParameterType = lastParameter.ParameterType;
1450-
1451- // if (lastParameterType.IsArray && lastParameter.IsDefined(typeof(ParamArrayAttribute), false))
1452- // {
1453- // object[] newArglist = new object[argsNeeded];
1454- // for (int i = 0; i < argsNeeded; i++)
1455- // newArglist[i] = arglist[i];
1456-
1457- // int length = argsProvided - argsNeeded + 1;
1458- // Array array = Array.CreateInstance(lastParameterType.GetElementType(), length);
1459- // for (int i = 0; i < length; i++)
1460- // array.SetValue(arglist[argsNeeded + i - 1], i);
1461-
1462- // newArglist[argsNeeded - 1] = array;
1463- // testMethod.arguments = arglist = newArglist;
1464- // argsProvided = argsNeeded;
1465- // }
1466- //}
1467-
1468- if (argsProvided != argsNeeded )
1469- {
1470- testMethod.RunState = RunState.NotRunnable;
1471- testMethod.IgnoreReason = "Wrong number of arguments provided";
1472- return false;
1473- }
1474-
1475-#if CLR_2_0 || CLR_4_0
1476- if (testMethod.Method.IsGenericMethodDefinition)
1477- {
1478- Type[] typeArguments = GetTypeArgumentsForMethod(testMethod.Method, arglist);
1479- foreach (object o in typeArguments)
1480- if (o == null)
1481- {
1482- testMethod.RunState = RunState.NotRunnable;
1483- testMethod.IgnoreReason = "Unable to determine type arguments for fixture";
1484- return false;
1485- }
1486-
1487- testMethod.method = testMethod.Method.MakeGenericMethod(typeArguments);
1488- parameters = testMethod.Method.GetParameters();
1489-
1490- for (int i = 0; i < parameters.Length; i++)
1491- {
1492- if (arglist[i].GetType() != parameters[i].ParameterType && arglist[i] is IConvertible)
1493- {
1494- try
1495- {
1496- arglist[i] = Convert.ChangeType(arglist[i], parameters[i].ParameterType);
1497- }
1498- catch (Exception)
1499- {
1500- // Do nothing - the incompatible argument will be reported below
1501- }
1502- }
1503- }
1504- }
1505-#endif
1506-
1507- return true;
1508- }
1509-
1510-#if CLR_2_0 || CLR_4_0
1511- private static Type[] GetTypeArgumentsForMethod(MethodInfo method, object[] arglist)
1512- {
1513- Type[] typeParameters = method.GetGenericArguments();
1514- Type[] typeArguments = new Type[typeParameters.Length];
1515- ParameterInfo[] parameters = method.GetParameters();
1516-
1517- for (int typeIndex = 0; typeIndex < typeArguments.Length; typeIndex++)
1518- {
1519- Type typeParameter = typeParameters[typeIndex];
1520-
1521- for (int argIndex = 0; argIndex < parameters.Length; argIndex++)
1522- {
1523- if (parameters[argIndex].ParameterType.Equals(typeParameter))
1524- typeArguments[typeIndex] = TypeHelper.BestCommonType(
1525- typeArguments[typeIndex],
1526- arglist[argIndex].GetType());
1527- }
1528- }
1529-
1530- return typeArguments;
1531- }
1532-#endif
1533- #endregion
1534- }
1535-}
1536+// ****************************************************************
1537+// Copyright 2008, Charlie Poole
1538+// This is free software licensed under the NUnit license. You may
1539+// obtain a copy of the license at http://nunit.org.
1540+// ****************************************************************
1541+
1542+using System;
1543+using System.Diagnostics;
1544+using System.Reflection;
1545+using NUnit.Core.Extensibility;
1546+
1547+namespace NUnit.Core.Builders
1548+{
1549+ /// <summary>
1550+ /// Class to build ether a parameterized or a normal NUnitTestMethod.
1551+ /// There are four cases that the builder must deal with:
1552+ /// 1. The method needs no params and none are provided
1553+ /// 2. The method needs params and they are provided
1554+ /// 3. The method needs no params but they are provided in error
1555+ /// 4. The method needs params but they are not provided
1556+ /// This could have been done using two different builders, but it
1557+ /// turned out to be simpler to have just one. The BuildFrom method
1558+ /// takes a different branch depending on whether any parameters are
1559+ /// provided, but all four cases are dealt with in lower-level methods
1560+ /// </summary>
1561+ public class NUnitTestCaseBuilder : ITestCaseBuilder2
1562+ {
1563+ #region ITestCaseBuilder Methods
1564+ /// <summary>
1565+ /// Determines if the method can be used to build an NUnit test
1566+ /// test method of some kind. The method must normally be marked
1567+ /// with an identifying attriute for this to be true. If the test
1568+ /// config file sets AllowOldStyleTests to true, then any method beginning
1569+ /// "test..." (case-insensitive) is treated as a test unless
1570+ /// it is also marked as a setup or teardown method.
1571+ ///
1572+ /// Note that this method does not check that the signature
1573+ /// of the method for validity. If we did that here, any
1574+ /// test methods with invalid signatures would be passed
1575+ /// over in silence in the test run. Since we want such
1576+ /// methods to be reported, the check for validity is made
1577+ /// in BuildFrom rather than here.
1578+ /// </summary>
1579+ /// <param name="method">A MethodInfo for the method being used as a test method</param>
1580+ /// <param name="suite">The test suite being built, to which the new test would be added</param>
1581+ /// <returns>True if the builder can create a test case from this method</returns>
1582+ public bool CanBuildFrom(MethodInfo method)
1583+ {
1584+ return Reflect.HasAttribute(method, NUnitFramework.TestAttribute, false)
1585+ || Reflect.HasAttribute(method, NUnitFramework.TestCaseAttribute, false)
1586+ || Reflect.HasAttribute(method, NUnitFramework.TestCaseSourceAttribute, false)
1587+ || Reflect.HasAttribute(method, NUnitFramework.TheoryAttribute, false);
1588+ }
1589+
1590+ /// <summary>
1591+ /// Build a Test from the provided MethodInfo. Depending on
1592+ /// whether the method takes arguments and on the availability
1593+ /// of test case data, this method may return a single test
1594+ /// or a group of tests contained in a ParameterizedMethodSuite.
1595+ /// </summary>
1596+ /// <param name="method">The MethodInfo for which a test is to be built</param>
1597+ /// <param name="suite">The test fixture being populated, or null</param>
1598+ /// <returns>A Test representing one or more method invocations</returns>
1599+ public Test BuildFrom(MethodInfo method)
1600+ {
1601+ return BuildFrom(method, null);
1602+ }
1603+
1604+ #region ITestCaseBuilder2 Members
1605+
1606+ public bool CanBuildFrom(MethodInfo method, Test parentSuite)
1607+ {
1608+ return CanBuildFrom(method);
1609+ }
1610+
1611+ public Test BuildFrom(MethodInfo method, Test parentSuite)
1612+ {
1613+ return CoreExtensions.Host.TestCaseProviders.HasTestCasesFor(method)
1614+ ? BuildParameterizedMethodSuite(method, parentSuite)
1615+ : BuildSingleTestMethod(method, parentSuite, null);
1616+ }
1617+
1618+ #endregion
1619+
1620+ /// <summary>
1621+ /// Builds a ParameterizedMetodSuite containing individual
1622+ /// test cases for each set of parameters provided for
1623+ /// this method.
1624+ /// </summary>
1625+ /// <param name="method">The MethodInfo for which a test is to be built</param>
1626+ /// <returns>A ParameterizedMethodSuite populated with test cases</returns>
1627+ public static Test BuildParameterizedMethodSuite(MethodInfo method, Test parentSuite)
1628+ {
1629+ ParameterizedMethodSuite methodSuite = new ParameterizedMethodSuite(method);
1630+ NUnitFramework.ApplyCommonAttributes(method, methodSuite);
1631+
1632+ if (parentSuite != null)
1633+ {
1634+ if (parentSuite.RunState == RunState.NotRunnable && methodSuite.RunState != RunState.NotRunnable)
1635+ {
1636+ methodSuite.RunState = RunState.NotRunnable;
1637+ methodSuite.IgnoreReason = parentSuite.IgnoreReason;
1638+ }
1639+
1640+ if (parentSuite.RunState == RunState.Ignored && methodSuite.RunState != RunState.Ignored && methodSuite.RunState != RunState.NotRunnable)
1641+ {
1642+ methodSuite.RunState = RunState.Ignored;
1643+ methodSuite.IgnoreReason = parentSuite.IgnoreReason;
1644+ }
1645+ }
1646+
1647+ foreach (object source in CoreExtensions.Host.TestCaseProviders.GetTestCasesFor(method, parentSuite))
1648+ {
1649+ ParameterSet parms;
1650+
1651+ if (source == null)
1652+ {
1653+ parms = new ParameterSet();
1654+ parms.Arguments = new object[] { null };
1655+ }
1656+ else
1657+ parms = source as ParameterSet;
1658+
1659+ if (parms == null)
1660+ {
1661+ if (source.GetType().GetInterface("NUnit.Framework.ITestCaseData") != null)
1662+ parms = ParameterSet.FromDataSource(source);
1663+ else
1664+ {
1665+ parms = new ParameterSet();
1666+
1667+ ParameterInfo[] parameters = method.GetParameters();
1668+ Type sourceType = source.GetType();
1669+
1670+ if (parameters.Length == 1 && parameters[0].ParameterType.IsAssignableFrom(sourceType))
1671+ parms.Arguments = new object[] { source };
1672+ else if (source is object[])
1673+ parms.Arguments = (object[])source;
1674+ else if (source is Array)
1675+ {
1676+ Array array = (Array)source;
1677+ if (array.Rank == 1)
1678+ {
1679+ parms.Arguments = new object[array.Length];
1680+ for (int i = 0; i < array.Length; i++)
1681+ parms.Arguments[i] = (object)array.GetValue(i);
1682+ }
1683+ }
1684+ else
1685+ parms.Arguments = new object[] { source };
1686+ }
1687+ }
1688+
1689+ TestMethod test = BuildSingleTestMethod(method, parentSuite, parms);
1690+
1691+ methodSuite.Add(test);
1692+ }
1693+
1694+ return methodSuite;
1695+ }
1696+
1697+ /// <summary>
1698+ /// Builds a single NUnitTestMethod, either as a child of the fixture
1699+ /// or as one of a set of test cases under a ParameterizedTestMethodSuite.
1700+ /// </summary>
1701+ /// <param name="method">The MethodInfo from which to construct the TestMethod</param>
1702+ /// <param name="parms">The ParameterSet to be used, or null</param>
1703+ /// <returns></returns>
1704+ public static NUnitTestMethod BuildSingleTestMethod(MethodInfo method, Test parentSuite, ParameterSet parms)
1705+ {
1706+ NUnitTestMethod testMethod = Reflect.IsAsyncMethod(method) ?
1707+ new NUnitAsyncTestMethod(method) : new NUnitTestMethod(method);
1708+
1709+ string prefix = method.ReflectedType.FullName;
1710+
1711+ if (parentSuite != null)
1712+ {
1713+ prefix = parentSuite.TestName.FullName;
1714+ testMethod.TestName.FullName = prefix + "." + testMethod.TestName.Name;
1715+ }
1716+
1717+ if (CheckTestMethodSignature(testMethod, parms))
1718+ {
1719+ if (parms == null)
1720+ NUnitFramework.ApplyCommonAttributes(method, testMethod);
1721+ NUnitFramework.ApplyExpectedExceptionAttribute(method, testMethod);
1722+ }
1723+
1724+ if (parms != null)
1725+ {
1726+ // NOTE: After the call to CheckTestMethodSignature, the Method
1727+ // property of testMethod may no longer be the same as the
1728+ // original MethodInfo, so we reassign it here.
1729+ method = testMethod.Method;
1730+
1731+ if (parms.TestName != null)
1732+ {
1733+ testMethod.TestName.Name = parms.TestName;
1734+ testMethod.TestName.FullName = prefix + "." + parms.TestName;
1735+ }
1736+ else if (parms.OriginalArguments != null)
1737+ {
1738+ string name = MethodHelper.GetDisplayName(method, parms.OriginalArguments);
1739+ testMethod.TestName.Name = name;
1740+ testMethod.TestName.FullName = prefix + "." + name;
1741+ }
1742+
1743+ if (parms.Ignored)
1744+ {
1745+ testMethod.RunState = RunState.Ignored;
1746+ testMethod.IgnoreReason = parms.IgnoreReason;
1747+ }
1748+ else if (parms.Explicit)
1749+ {
1750+ testMethod.RunState = RunState.Explicit;
1751+ }
1752+
1753+ if (parms.ExpectedExceptionName != null)
1754+ testMethod.exceptionProcessor = new ExpectedExceptionProcessor(testMethod, parms);
1755+
1756+ foreach (string key in parms.Properties.Keys)
1757+ testMethod.Properties[key] = parms.Properties[key];
1758+
1759+ // Description is stored in parms.Properties
1760+ if (parms.Description != null)
1761+ testMethod.Description = parms.Description;
1762+ }
1763+
1764+ //if (testMethod.BuilderException != null && testMethod.RunState != RunState.NotRunnable)
1765+ //{
1766+ // testMethod.RunState = RunState.NotRunnable;
1767+ // testMethod.IgnoreReason = testMethod.BuilderException.Message;
1768+ //}
1769+
1770+ if (parentSuite != null)
1771+ {
1772+ if (parentSuite.RunState == RunState.NotRunnable && testMethod.RunState != RunState.NotRunnable)
1773+ {
1774+ testMethod.RunState = RunState.NotRunnable;
1775+ testMethod.IgnoreReason = parentSuite.IgnoreReason;
1776+ }
1777+
1778+ if (parentSuite.RunState == RunState.Ignored && testMethod.RunState != RunState.Ignored && testMethod.RunState != RunState.NotRunnable)
1779+ {
1780+ testMethod.RunState = RunState.Ignored;
1781+ testMethod.IgnoreReason = parentSuite.IgnoreReason;
1782+ }
1783+ }
1784+
1785+ return testMethod;
1786+ }
1787+ #endregion
1788+
1789+ #region Helper Methods
1790+ /// <summary>
1791+ /// Helper method that checks the signature of a TestMethod and
1792+ /// any supplied parameters to determine if the test is valid.
1793+ ///
1794+ /// Currently, NUnitTestMethods are required to be public,
1795+ /// non-abstract methods, either static or instance,
1796+ /// returning void. They may take arguments but the values must
1797+ /// be provided or the TestMethod is not considered runnable.
1798+ ///
1799+ /// Methods not meeting these criteria will be marked as
1800+ /// non-runnable and the method will return false in that case.
1801+ /// </summary>
1802+ /// <param name="testMethod">The TestMethod to be checked. If it
1803+ /// is found to be non-runnable, it will be modified.</param>
1804+ /// <param name="parms">Parameters to be used for this test, or null</param>
1805+ /// <returns>True if the method signature is valid, false if not</returns>
1806+ private static bool CheckTestMethodSignature(TestMethod testMethod, ParameterSet parms)
1807+ {
1808+ if (testMethod.Method.IsAbstract)
1809+ {
1810+ testMethod.RunState = RunState.NotRunnable;
1811+ testMethod.IgnoreReason = "Method is abstract";
1812+ return false;
1813+ }
1814+
1815+ if (!testMethod.Method.IsPublic)
1816+ {
1817+ testMethod.RunState = RunState.NotRunnable;
1818+ testMethod.IgnoreReason = "Method is not public";
1819+ return false;
1820+ }
1821+
1822+ ParameterInfo[] parameters = testMethod.Method.GetParameters();
1823+ int argsNeeded = parameters.Length;
1824+
1825+ object[] arglist = null;
1826+ int argsProvided = 0;
1827+
1828+ if (parms != null)
1829+ {
1830+ testMethod.arguments = parms.Arguments;
1831+ testMethod.hasExpectedResult = parms.HasExpectedResult;
1832+ if (testMethod.hasExpectedResult)
1833+ testMethod.expectedResult = parms.Result;
1834+ testMethod.RunState = parms.RunState;
1835+ testMethod.IgnoreReason = parms.IgnoreReason;
1836+ testMethod.BuilderException = parms.ProviderException;
1837+
1838+ arglist = parms.Arguments;
1839+
1840+ if (arglist != null)
1841+ argsProvided = arglist.Length;
1842+
1843+ if (testMethod.RunState != RunState.Runnable)
1844+ return false;
1845+ }
1846+
1847+ bool isAsyncMethod = Reflect.IsAsyncMethod(testMethod.Method);
1848+
1849+ if (!testMethod.Method.ReturnType.Equals(typeof(void)) && !isAsyncMethod &&
1850+ (parms == null || !parms.HasExpectedResult && parms.ExpectedExceptionName == null))
1851+ {
1852+ testMethod.RunState = RunState.NotRunnable;
1853+ testMethod.IgnoreReason = "Method has non-void return value";
1854+ return false;
1855+ }
1856+
1857+ if(isAsyncMethod && !testMethod.Method.ReturnType.IsGenericType && parms != null && parms.HasExpectedResult)
1858+ {
1859+ testMethod.RunState = RunState.NotRunnable;
1860+ testMethod.IgnoreReason = "Async method has void or Task return type when a result was expected";
1861+ return false;
1862+ }
1863+
1864+ if (argsProvided > 0 && argsNeeded == 0)
1865+ {
1866+ testMethod.RunState = RunState.NotRunnable;
1867+ testMethod.IgnoreReason = "Arguments provided for method not taking any";
1868+ return false;
1869+ }
1870+
1871+ if (argsProvided == 0 && argsNeeded > 0)
1872+ {
1873+ testMethod.RunState = RunState.NotRunnable;
1874+ testMethod.IgnoreReason = "No arguments were provided";
1875+ return false;
1876+ }
1877+
1878+ //if (argsProvided > argsNeeded)
1879+ //{
1880+ // ParameterInfo lastParameter = parameters[argsNeeded - 1];
1881+ // Type lastParameterType = lastParameter.ParameterType;
1882+
1883+ // if (lastParameterType.IsArray && lastParameter.IsDefined(typeof(ParamArrayAttribute), false))
1884+ // {
1885+ // object[] newArglist = new object[argsNeeded];
1886+ // for (int i = 0; i < argsNeeded; i++)
1887+ // newArglist[i] = arglist[i];
1888+
1889+ // int length = argsProvided - argsNeeded + 1;
1890+ // Array array = Array.CreateInstance(lastParameterType.GetElementType(), length);
1891+ // for (int i = 0; i < length; i++)
1892+ // array.SetValue(arglist[argsNeeded + i - 1], i);
1893+
1894+ // newArglist[argsNeeded - 1] = array;
1895+ // testMethod.arguments = arglist = newArglist;
1896+ // argsProvided = argsNeeded;
1897+ // }
1898+ //}
1899+
1900+ if (argsProvided != argsNeeded )
1901+ {
1902+ testMethod.RunState = RunState.NotRunnable;
1903+ testMethod.IgnoreReason = "Wrong number of arguments provided";
1904+ return false;
1905+ }
1906+
1907+#if CLR_2_0 || CLR_4_0
1908+ if (testMethod.Method.IsGenericMethodDefinition)
1909+ {
1910+ Type[] typeArguments = GetTypeArgumentsForMethod(testMethod.Method, arglist);
1911+ foreach (object o in typeArguments)
1912+ if (o == null)
1913+ {
1914+ testMethod.RunState = RunState.NotRunnable;
1915+ testMethod.IgnoreReason = "Unable to determine type arguments for fixture";
1916+ return false;
1917+ }
1918+
1919+ testMethod.method = testMethod.Method.MakeGenericMethod(typeArguments);
1920+ parameters = testMethod.Method.GetParameters();
1921+
1922+ for (int i = 0; i < parameters.Length; i++)
1923+ {
1924+ if (arglist[i].GetType() != parameters[i].ParameterType && arglist[i] is IConvertible)
1925+ {
1926+ try
1927+ {
1928+ arglist[i] = Convert.ChangeType(arglist[i], parameters[i].ParameterType);
1929+ }
1930+ catch (Exception)
1931+ {
1932+ // Do nothing - the incompatible argument will be reported below
1933+ }
1934+ }
1935+ }
1936+ }
1937+#endif
1938+
1939+ return true;
1940+ }
1941+
1942+#if CLR_2_0 || CLR_4_0
1943+ private static Type[] GetTypeArgumentsForMethod(MethodInfo method, object[] arglist)
1944+ {
1945+ Type[] typeParameters = method.GetGenericArguments();
1946+ Type[] typeArguments = new Type[typeParameters.Length];
1947+ ParameterInfo[] parameters = method.GetParameters();
1948+
1949+ for (int typeIndex = 0; typeIndex < typeArguments.Length; typeIndex++)
1950+ {
1951+ Type typeParameter = typeParameters[typeIndex];
1952+
1953+ for (int argIndex = 0; argIndex < parameters.Length; argIndex++)
1954+ {
1955+ if (parameters[argIndex].ParameterType.Equals(typeParameter))
1956+ typeArguments[typeIndex] = TypeHelper.BestCommonType(
1957+ typeArguments[typeIndex],
1958+ arglist[argIndex].GetType());
1959+ }
1960+ }
1961+
1962+ return typeArguments;
1963+ }
1964+#endif
1965+ #endregion
1966+ }
1967+}
1968
1969=== added file 'src/NUnitCore/core/NUnitAsyncTestMethod.cs'
1970--- src/NUnitCore/core/NUnitAsyncTestMethod.cs 1970-01-01 00:00:00 +0000
1971+++ src/NUnitCore/core/NUnitAsyncTestMethod.cs 2012-10-03 23:32:21 +0000
1972@@ -0,0 +1,79 @@
1973+using System;
1974+using System.Collections.Generic;
1975+using System.Reflection;
1976+using System.Threading;
1977+
1978+namespace NUnit.Core
1979+{
1980+ public class NUnitAsyncTestMethod : NUnitTestMethod
1981+ {
1982+ private const string TaskWaitMethod = "Wait";
1983+ private const string TaskResultProperty = "Result";
1984+ private const string SystemAggregateException = "System.AggregateException";
1985+ private const string InnerExceptionsProperty = "InnerExceptions";
1986+ private const BindingFlags TaskResultPropertyBindingFlags = BindingFlags.GetProperty | BindingFlags.Instance | BindingFlags.Public;
1987+
1988+ public NUnitAsyncTestMethod(MethodInfo method) : base(method)
1989+ {
1990+ }
1991+
1992+ protected override object RunTestMethod(TestResult testResult)
1993+ {
1994+ if (method.ReturnType == typeof (void))
1995+ {
1996+ return RunVoidAsyncMethod(testResult);
1997+ }
1998+
1999+ return RunTaskAsyncMethod(testResult);
2000+ }
2001+
2002+ private object RunVoidAsyncMethod(TestResult testResult)
2003+ {
2004+ var previousContext = SynchronizationContext.Current;
2005+ var currentContext = new AsyncSynchronizationContext();
2006+ SynchronizationContext.SetSynchronizationContext(currentContext);
2007+
2008+ try
2009+ {
2010+ object result = base.RunTestMethod(testResult);
2011+
2012+ currentContext.WaitForOperationCompleted();
2013+
2014+ if (currentContext.Exceptions.Count > 0)
2015+ throw new NUnitException("Rethrown", currentContext.Exceptions[0]);
2016+
2017+ return result;
2018+ }
2019+ finally
2020+ {
2021+ SynchronizationContext.SetSynchronizationContext(previousContext);
2022+ }
2023+ }
2024+
2025+ private object RunTaskAsyncMethod(TestResult testResult)
2026+ {
2027+ try
2028+ {
2029+ object task = base.RunTestMethod(testResult);
2030+
2031+ Reflect.InvokeMethod(method.ReturnType.GetMethod(TaskWaitMethod, new Type[0]), task);
2032+ PropertyInfo resultProperty = Reflect.GetNamedProperty(method.ReturnType, TaskResultProperty, TaskResultPropertyBindingFlags);
2033+
2034+ return resultProperty != null ? resultProperty.GetValue(task, null) : task;
2035+ }
2036+ catch (NUnitException e)
2037+ {
2038+ if (e.InnerException != null &&
2039+ e.InnerException.GetType().FullName.Equals(SystemAggregateException))
2040+ {
2041+ IList<Exception> inner = (IList<Exception>)e.InnerException.GetType()
2042+ .GetProperty(InnerExceptionsProperty).GetValue(e.InnerException, null);
2043+
2044+ throw new NUnitException("Rethrown", inner[0]);
2045+ }
2046+
2047+ throw;
2048+ }
2049+ }
2050+ }
2051+}
2052\ No newline at end of file
2053
2054=== modified file 'src/NUnitCore/core/NUnitTestMethod.cs'
2055--- src/NUnitCore/core/NUnitTestMethod.cs 2010-09-19 22:47:12 +0000
2056+++ src/NUnitCore/core/NUnitTestMethod.cs 2012-10-03 23:32:21 +0000
2057@@ -2,10 +2,10 @@
2058 // Copyright 2007, Charlie Poole
2059 // This is free software licensed under the NUnit license. You may
2060 // obtain a copy of the license at http://nunit.org.
2061-// ****************************************************************
2062-using System;
2063-using System.Reflection;
2064-
2065+// ****************************************************************
2066+
2067+using System.Reflection;
2068+
2069 namespace NUnit.Core
2070 {
2071 /// <summary>
2072@@ -35,5 +35,5 @@
2073 return testResult;
2074 }
2075 #endregion
2076- }
2077+ }
2078 }
2079
2080=== modified file 'src/NUnitCore/core/Reflect.cs'
2081--- src/NUnitCore/core/Reflect.cs 2010-07-20 17:21:45 +0000
2082+++ src/NUnitCore/core/Reflect.cs 2012-10-03 23:32:21 +0000
2083@@ -438,6 +438,15 @@
2084
2085 private Reflect() { }
2086
2087- #endregion
2088+ #endregion
2089+
2090+ public static bool IsAsyncMethod(MethodInfo method)
2091+ {
2092+ foreach (object attribute in method.GetCustomAttributes(false))
2093+ if (attribute.GetType().FullName.Equals("System.Runtime.CompilerServices.AsyncStateMachineAttribute"))
2094+ return true;
2095+
2096+ return false;
2097+ }
2098 }
2099 }
2100
2101=== modified file 'src/NUnitCore/core/TestMethod.cs'
2102--- src/NUnitCore/core/TestMethod.cs 2012-09-25 16:39:42 +0000
2103+++ src/NUnitCore/core/TestMethod.cs 2012-10-03 23:32:21 +0000
2104@@ -3,8 +3,10 @@
2105 // may obtain a copy of the license as well as information regarding
2106 // copyright ownership at http://nunit.org.
2107 // ****************************************************************
2108-//#define DEFAULT_APPLIES_TO_TESTCASE
2109-
2110+//#define DEFAULT_APPLIES_TO_TESTCASE
2111+
2112+using System.Diagnostics;
2113+
2114 namespace NUnit.Core
2115 {
2116 using System;
2117@@ -451,35 +453,36 @@
2118 {
2119 try
2120 {
2121- RunTestMethod(testResult);
2122+ object result = RunTestMethod(testResult);
2123+
2124+ if (this.hasExpectedResult)
2125+ NUnitFramework.Assert.AreEqual(expectedResult, result);
2126+
2127+ testResult.Success();
2128+
2129 if (testResult.IsSuccess && exceptionProcessor != null)
2130 exceptionProcessor.ProcessNoException(testResult);
2131 }
2132- catch (Exception ex)
2133- {
2134- if (ex is ThreadAbortException)
2135- Thread.ResetAbort();
2136-
2137- if (exceptionProcessor == null)
2138- RecordException(ex, testResult, FailureSite.Test);
2139- else
2140- exceptionProcessor.ProcessException(ex, testResult);
2141- }
2142- }
2143-
2144- private void RunTestMethod(TestResult testResult)
2145- {
2146- object fixture = this.method.IsStatic ? null : this.Fixture;
2147-
2148- object result = Reflect.InvokeMethod( this.method, fixture, this.arguments );
2149-
2150- if (this.hasExpectedResult)
2151- NUnitFramework.Assert.AreEqual(expectedResult, result);
2152-
2153- testResult.Success();
2154- }
2155-
2156- #endregion
2157+ catch (Exception ex)
2158+ {
2159+ if (ex is ThreadAbortException)
2160+ Thread.ResetAbort();
2161+
2162+ if (exceptionProcessor == null)
2163+ RecordException(ex, testResult, FailureSite.Test);
2164+ else
2165+ exceptionProcessor.ProcessException(ex, testResult);
2166+ }
2167+ }
2168+
2169+ protected virtual object RunTestMethod(TestResult testResult)
2170+ {
2171+ object fixture = this.method.IsStatic ? null : this.Fixture;
2172+
2173+ return Reflect.InvokeMethod(this.method, fixture, this.arguments);
2174+ }
2175+
2176+ #endregion
2177
2178 #region Record Info About An Exception
2179 protected virtual void RecordException( Exception exception, TestResult testResult, FailureSite failureSite )
2180@@ -495,5 +498,5 @@
2181 testResult.SetResult(finalResultState, exception, failureSite);
2182 }
2183 #endregion
2184- }
2185-}
2186+ }
2187+}
2188\ No newline at end of file
2189
2190=== modified file 'src/NUnitCore/core/TestSuite.cs'
2191--- src/NUnitCore/core/TestSuite.cs 2012-09-25 16:39:42 +0000
2192+++ src/NUnitCore/core/TestSuite.cs 2012-10-03 23:32:21 +0000
2193@@ -523,8 +523,7 @@
2194 return type.IsAbstract && type.IsSealed;
2195 }
2196
2197- private void RunAllTests(
2198- TestResult suiteResult, EventListener listener, ITestFilter filter )
2199+ private void RunAllTests(TestResult suiteResult, EventListener listener, ITestFilter filter )
2200 {
2201 if (Properties.Contains("Timeout"))
2202 TestExecutionContext.CurrentContext.TestCaseTimeout = (int)Properties["Timeout"];
2203
2204=== modified file 'src/NUnitCore/core/nunit.core.build'
2205--- src/NUnitCore/core/nunit.core.build 2012-02-04 19:14:14 +0000
2206+++ src/NUnitCore/core/nunit.core.build 2012-10-03 23:32:21 +0000
2207@@ -3,6 +3,7 @@
2208
2209 <patternset id="source-files">
2210 <include name="AbstractTestCaseDecoration.cs"/>
2211+ <include name="AsyncSynchronizationContext.cs"/>
2212 <include name="ActionsHelper.cs" />
2213 <include name="AssemblyInfo.cs"/>
2214 <include name="AssemblyHelper.cs"/>
2215@@ -32,6 +33,7 @@
2216 <include name="NamespaceTreeBuilder.cs"/>
2217 <include name="NoTestFixturesException.cs"/>
2218 <include name="NullListener.cs"/>
2219+ <include name="NUnitAsyncTestMethod.cs"/>
2220 <include name="NUnitConfiguration.cs"/>
2221 <include name="NUnitException.cs"/>
2222 <include name="NUnitFramework.cs"/>
2223
2224=== modified file 'src/NUnitCore/core/nunit.core.dll.csproj'
2225--- src/NUnitCore/core/nunit.core.dll.csproj 2012-08-08 03:34:12 +0000
2226+++ src/NUnitCore/core/nunit.core.dll.csproj 2012-10-03 23:32:21 +0000
2227@@ -1,226 +1,228 @@
2228-<?xml version="1.0" encoding="utf-8"?>
2229-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
2230- <PropertyGroup>
2231- <ProjectType>Local</ProjectType>
2232- <ProductVersion>9.0.30729</ProductVersion>
2233- <SchemaVersion>2.0</SchemaVersion>
2234- <ProjectGuid>{EBD43A7F-AFCA-4281-BB53-5CDD91F966A3}</ProjectGuid>
2235- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
2236- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
2237- <AssemblyKeyContainerName>
2238- </AssemblyKeyContainerName>
2239- <AssemblyName>nunit.core</AssemblyName>
2240- <DefaultClientScript>JScript</DefaultClientScript>
2241- <DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout>
2242- <DefaultTargetSchema>IE50</DefaultTargetSchema>
2243- <DelaySign>false</DelaySign>
2244- <OutputType>Library</OutputType>
2245- <RootNamespace>NUnit.Core</RootNamespace>
2246- <RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
2247- <FileUpgradeFlags>
2248- </FileUpgradeFlags>
2249- <UpgradeBackupLocation>
2250- </UpgradeBackupLocation>
2251- <OldToolsVersion>3.5</OldToolsVersion>
2252- <IsWebBootstrapper>true</IsWebBootstrapper>
2253- <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
2254- <PublishUrl>http://localhost/nunit.core/</PublishUrl>
2255- <Install>true</Install>
2256- <InstallFrom>Web</InstallFrom>
2257- <UpdateEnabled>true</UpdateEnabled>
2258- <UpdateMode>Foreground</UpdateMode>
2259- <UpdateInterval>7</UpdateInterval>
2260- <UpdateIntervalUnits>Days</UpdateIntervalUnits>
2261- <UpdatePeriodically>false</UpdatePeriodically>
2262- <UpdateRequired>false</UpdateRequired>
2263- <MapFileExtensions>true</MapFileExtensions>
2264- <ApplicationRevision>0</ApplicationRevision>
2265- <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
2266- <UseApplicationTrust>false</UseApplicationTrust>
2267- <BootstrapperEnabled>true</BootstrapperEnabled>
2268- </PropertyGroup>
2269- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
2270- <OutputPath>..\..\..\bin\Debug\lib\</OutputPath>
2271- <BaseAddress>285212672</BaseAddress>
2272- <ConfigurationOverrideFile>
2273- </ConfigurationOverrideFile>
2274- <DefineConstants>TRACE;DEBUG;CLR_2_0,NET_2_0,CS_3_0</DefineConstants>
2275- <DocumentationFile>
2276- </DocumentationFile>
2277- <DebugSymbols>true</DebugSymbols>
2278- <FileAlignment>4096</FileAlignment>
2279- <NoWarn>1699</NoWarn>
2280- <Optimize>false</Optimize>
2281- <RegisterForComInterop>false</RegisterForComInterop>
2282- <RemoveIntegerChecks>false</RemoveIntegerChecks>
2283- <WarningLevel>4</WarningLevel>
2284- <DebugType>full</DebugType>
2285- <ErrorReport>prompt</ErrorReport>
2286- <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
2287- </PropertyGroup>
2288- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
2289- <OutputPath>..\..\..\bin\Release\lib\</OutputPath>
2290- <BaseAddress>285212672</BaseAddress>
2291- <ConfigurationOverrideFile>
2292- </ConfigurationOverrideFile>
2293- <DefineConstants>TRACE;CLR_2_0,NET_2_0,CS_3_0</DefineConstants>
2294- <DocumentationFile>
2295- </DocumentationFile>
2296- <FileAlignment>4096</FileAlignment>
2297- <NoWarn>1699</NoWarn>
2298- <Optimize>true</Optimize>
2299- <RegisterForComInterop>false</RegisterForComInterop>
2300- <RemoveIntegerChecks>false</RemoveIntegerChecks>
2301- <WarningLevel>4</WarningLevel>
2302- <DebugType>none</DebugType>
2303- <ErrorReport>prompt</ErrorReport>
2304- <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
2305- </PropertyGroup>
2306- <ItemGroup>
2307- <Reference Include="System">
2308- <Name>System</Name>
2309- </Reference>
2310- <Reference Include="System.Data">
2311- <Name>System.Data</Name>
2312- </Reference>
2313- <Reference Include="System.Xml">
2314- <Name>System.XML</Name>
2315- </Reference>
2316- <ProjectReference Include="..\interfaces\nunit.core.interfaces.dll.csproj">
2317- <Name>nunit.core.interfaces.dll</Name>
2318- <Project>{435428F8-5995-4CE4-8022-93D595A8CC0F}</Project>
2319- <Private>False</Private>
2320- </ProjectReference>
2321- <Reference Include="System.Configuration" />
2322- </ItemGroup>
2323- <ItemGroup>
2324- <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
2325- <Visible>False</Visible>
2326- <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
2327- <Install>false</Install>
2328- </BootstrapperPackage>
2329- <BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
2330- <Visible>False</Visible>
2331- <ProductName>.NET Framework 2.0 %28x86%29</ProductName>
2332- <Install>true</Install>
2333- </BootstrapperPackage>
2334- <BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
2335- <Visible>False</Visible>
2336- <ProductName>.NET Framework 3.0 %28x86%29</ProductName>
2337- <Install>false</Install>
2338- </BootstrapperPackage>
2339- <BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
2340- <Visible>False</Visible>
2341- <ProductName>.NET Framework 3.5</ProductName>
2342- <Install>false</Install>
2343- </BootstrapperPackage>
2344- <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
2345- <Visible>False</Visible>
2346- <ProductName>.NET Framework 3.5 SP1</ProductName>
2347- <Install>false</Install>
2348- </BootstrapperPackage>
2349- </ItemGroup>
2350- <ItemGroup>
2351- <Compile Include="..\..\CommonAssemblyInfo.cs">
2352- <Link>CommonAssemblyInfo.cs</Link>
2353- </Compile>
2354- <Compile Include="AbstractTestCaseDecoration.cs" />
2355- <Compile Include="AssemblyHelper.cs" />
2356- <Compile Include="AssemblyInfo.cs" />
2357- <Compile Include="AssemblyReader.cs" />
2358- <Compile Include="AssemblyResolver.cs" />
2359- <Compile Include="ActionsHelper.cs" />
2360- <Compile Include="Builders\CombinatorialStrategy.cs" />
2361- <Compile Include="Builders\CombinatorialTestCaseProvider.cs" />
2362- <Compile Include="Builders\CombiningStrategy.cs" />
2363- <Compile Include="Builders\DatapointProvider.cs" />
2364- <Compile Include="Builders\InlineDataPointProvider.cs" />
2365- <Compile Include="Builders\LegacySuiteBuilder.cs" />
2366- <Compile Include="Builders\NUnitTestCaseBuilder.cs" />
2367- <Compile Include="Builders\NUnitTestFixtureBuilder.cs" />
2368- <Compile Include="Builders\PairwiseStrategy.cs" />
2369- <Compile Include="Builders\ProviderCache.cs" />
2370- <Compile Include="Builders\ProviderInfo.cs" />
2371- <Compile Include="Builders\SequentialStrategy.cs" />
2372- <Compile Include="Builders\SetUpFixtureBuilder.cs" />
2373- <Compile Include="Builders\TestAssemblyBuilder.cs" />
2374- <Compile Include="Builders\TestCaseParameterProvider.cs" />
2375- <Compile Include="Builders\TestCaseSourceProvider.cs" />
2376- <Compile Include="Builders\ValueSourceProvider.cs" />
2377- <Compile Include="ContextDictionary.cs" />
2378- <Compile Include="CoreExtensions.cs" />
2379- <Compile Include="CultureDetector.cs" />
2380- <Compile Include="DirectorySwapper.cs" />
2381- <Compile Include="DomainAgent.cs" />
2382- <Compile Include="EventListenerTextWriter.cs" />
2383- <Compile Include="EventPump.cs" />
2384- <Compile Include="EventQueue.cs" />
2385- <Compile Include="ExpectedExceptionProcessor.cs" />
2386- <Compile Include="Extensibility\DataPointProviders.cs" />
2387- <Compile Include="Extensibility\EventListenerCollection.cs" />
2388- <Compile Include="Extensibility\FrameworkRegistry.cs" />
2389- <Compile Include="Extensibility\SuiteBuilderCollection.cs" />
2390- <Compile Include="Extensibility\TestCaseBuilderCollection.cs" />
2391- <Compile Include="Extensibility\TestCaseProviders.cs" />
2392- <Compile Include="Extensibility\TestDecoratorCollection.cs" />
2393- <Compile Include="ExtensionHost.cs" />
2394- <Compile Include="ExtensionPoint.cs" />
2395- <Compile Include="IgnoreDecorator.cs" />
2396- <Compile Include="InternalTrace.cs" />
2397- <Compile Include="InternalTraceWriter.cs" />
2398- <Compile Include="InvalidSuiteException.cs" />
2399- <Compile Include="InvalidTestFixtureException.cs" />
2400- <Compile Include="LegacySuite.cs" />
2401- <Compile Include="Log4NetCapture.cs" />
2402- <Compile Include="Logger.cs" />
2403- <Compile Include="MethodHelper.cs" />
2404- <Compile Include="NamespaceSuite.cs" />
2405- <Compile Include="NamespaceTreeBuilder.cs" />
2406- <Compile Include="NoTestFixturesException.cs" />
2407- <Compile Include="NullListener.cs" />
2408- <Compile Include="NUnitConfiguration.cs" />
2409- <Compile Include="NUnitException.cs" />
2410- <Compile Include="NUnitFramework.cs" />
2411- <Compile Include="NUnitTestFixture.cs" />
2412- <Compile Include="NUnitTestMethod.cs" />
2413- <Compile Include="ParameterizedFixtureSuite.cs" />
2414- <Compile Include="ParameterizedTestMethodSuite.cs" />
2415- <Compile Include="PlatformHelper.cs" />
2416- <Compile Include="ProjectRootSuite.cs" />
2417- <Compile Include="ProxyTestRunner.cs" />
2418- <Compile Include="QueuingEventListener.cs" />
2419- <Compile Include="Reflect.cs" />
2420- <Compile Include="RemoteTestRunner.cs" />
2421- <Compile Include="SetUpFixture.cs" />
2422- <Compile Include="SimpleTestRunner.cs" />
2423- <Compile Include="StringTextWriter.cs" />
2424- <Compile Include="SuiteBuilderAttribute.cs" />
2425- <Compile Include="TestAction.cs" />
2426- <Compile Include="TestAssembly.cs" />
2427- <Compile Include="TestBuilderAttribute.cs" />
2428- <Compile Include="TestCaseBuilderAttribute.cs" />
2429- <Compile Include="TestDecoratorAttribute.cs" />
2430- <Compile Include="TestExecutionContext.cs" />
2431- <Compile Include="TestFixture.cs" />
2432- <Compile Include="TestFixtureBuilder.cs" />
2433- <Compile Include="TestMethod.cs" />
2434- <Compile Include="TestRunnerThread.cs" />
2435- <Compile Include="TestSuite.cs" />
2436- <Compile Include="TestSuiteBuilder.cs" />
2437- <Compile Include="TestThread.cs" />
2438- <Compile Include="TextCapture.cs" />
2439- <Compile Include="ThreadedTestRunner.cs" />
2440- <Compile Include="ThreadUtility.cs" />
2441- <Compile Include="TypeHelper.cs" />
2442- </ItemGroup>
2443- <ItemGroup>
2444- <None Include="nunit.core.build" />
2445- </ItemGroup>
2446- <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
2447- <PropertyGroup>
2448- <PreBuildEvent>
2449- </PreBuildEvent>
2450- <PostBuildEvent>
2451- </PostBuildEvent>
2452- </PropertyGroup>
2453+<?xml version="1.0" encoding="utf-8"?>
2454+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
2455+ <PropertyGroup>
2456+ <ProjectType>Local</ProjectType>
2457+ <ProductVersion>9.0.30729</ProductVersion>
2458+ <SchemaVersion>2.0</SchemaVersion>
2459+ <ProjectGuid>{EBD43A7F-AFCA-4281-BB53-5CDD91F966A3}</ProjectGuid>
2460+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
2461+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
2462+ <AssemblyKeyContainerName>
2463+ </AssemblyKeyContainerName>
2464+ <AssemblyName>nunit.core</AssemblyName>
2465+ <DefaultClientScript>JScript</DefaultClientScript>
2466+ <DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout>
2467+ <DefaultTargetSchema>IE50</DefaultTargetSchema>
2468+ <DelaySign>false</DelaySign>
2469+ <OutputType>Library</OutputType>
2470+ <RootNamespace>NUnit.Core</RootNamespace>
2471+ <RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
2472+ <FileUpgradeFlags>
2473+ </FileUpgradeFlags>
2474+ <UpgradeBackupLocation>
2475+ </UpgradeBackupLocation>
2476+ <OldToolsVersion>3.5</OldToolsVersion>
2477+ <IsWebBootstrapper>true</IsWebBootstrapper>
2478+ <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
2479+ <PublishUrl>http://localhost/nunit.core/</PublishUrl>
2480+ <Install>true</Install>
2481+ <InstallFrom>Web</InstallFrom>
2482+ <UpdateEnabled>true</UpdateEnabled>
2483+ <UpdateMode>Foreground</UpdateMode>
2484+ <UpdateInterval>7</UpdateInterval>
2485+ <UpdateIntervalUnits>Days</UpdateIntervalUnits>
2486+ <UpdatePeriodically>false</UpdatePeriodically>
2487+ <UpdateRequired>false</UpdateRequired>
2488+ <MapFileExtensions>true</MapFileExtensions>
2489+ <ApplicationRevision>0</ApplicationRevision>
2490+ <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
2491+ <UseApplicationTrust>false</UseApplicationTrust>
2492+ <BootstrapperEnabled>true</BootstrapperEnabled>
2493+ </PropertyGroup>
2494+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
2495+ <OutputPath>..\..\..\bin\Debug\lib\</OutputPath>
2496+ <BaseAddress>285212672</BaseAddress>
2497+ <ConfigurationOverrideFile>
2498+ </ConfigurationOverrideFile>
2499+ <DefineConstants>TRACE;DEBUG;CLR_2_0,NET_2_0,CS_3_0</DefineConstants>
2500+ <DocumentationFile>
2501+ </DocumentationFile>
2502+ <DebugSymbols>true</DebugSymbols>
2503+ <FileAlignment>4096</FileAlignment>
2504+ <NoWarn>1699</NoWarn>
2505+ <Optimize>false</Optimize>
2506+ <RegisterForComInterop>false</RegisterForComInterop>
2507+ <RemoveIntegerChecks>false</RemoveIntegerChecks>
2508+ <WarningLevel>4</WarningLevel>
2509+ <DebugType>full</DebugType>
2510+ <ErrorReport>prompt</ErrorReport>
2511+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
2512+ </PropertyGroup>
2513+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
2514+ <OutputPath>..\..\..\bin\Release\lib\</OutputPath>
2515+ <BaseAddress>285212672</BaseAddress>
2516+ <ConfigurationOverrideFile>
2517+ </ConfigurationOverrideFile>
2518+ <DefineConstants>TRACE;CLR_2_0,NET_2_0,CS_3_0</DefineConstants>
2519+ <DocumentationFile>
2520+ </DocumentationFile>
2521+ <FileAlignment>4096</FileAlignment>
2522+ <NoWarn>1699</NoWarn>
2523+ <Optimize>true</Optimize>
2524+ <RegisterForComInterop>false</RegisterForComInterop>
2525+ <RemoveIntegerChecks>false</RemoveIntegerChecks>
2526+ <WarningLevel>4</WarningLevel>
2527+ <DebugType>none</DebugType>
2528+ <ErrorReport>prompt</ErrorReport>
2529+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
2530+ </PropertyGroup>
2531+ <ItemGroup>
2532+ <Reference Include="System">
2533+ <Name>System</Name>
2534+ </Reference>
2535+ <Reference Include="System.Data">
2536+ <Name>System.Data</Name>
2537+ </Reference>
2538+ <Reference Include="System.Xml">
2539+ <Name>System.XML</Name>
2540+ </Reference>
2541+ <ProjectReference Include="..\interfaces\nunit.core.interfaces.dll.csproj">
2542+ <Name>nunit.core.interfaces.dll</Name>
2543+ <Project>{435428F8-5995-4CE4-8022-93D595A8CC0F}</Project>
2544+ <Private>False</Private>
2545+ </ProjectReference>
2546+ <Reference Include="System.Configuration" />
2547+ </ItemGroup>
2548+ <ItemGroup>
2549+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
2550+ <Visible>False</Visible>
2551+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
2552+ <Install>false</Install>
2553+ </BootstrapperPackage>
2554+ <BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
2555+ <Visible>False</Visible>
2556+ <ProductName>.NET Framework 2.0 %28x86%29</ProductName>
2557+ <Install>true</Install>
2558+ </BootstrapperPackage>
2559+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
2560+ <Visible>False</Visible>
2561+ <ProductName>.NET Framework 3.0 %28x86%29</ProductName>
2562+ <Install>false</Install>
2563+ </BootstrapperPackage>
2564+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
2565+ <Visible>False</Visible>
2566+ <ProductName>.NET Framework 3.5</ProductName>
2567+ <Install>false</Install>
2568+ </BootstrapperPackage>
2569+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
2570+ <Visible>False</Visible>
2571+ <ProductName>.NET Framework 3.5 SP1</ProductName>
2572+ <Install>false</Install>
2573+ </BootstrapperPackage>
2574+ </ItemGroup>
2575+ <ItemGroup>
2576+ <Compile Include="..\..\CommonAssemblyInfo.cs">
2577+ <Link>CommonAssemblyInfo.cs</Link>
2578+ </Compile>
2579+ <Compile Include="AbstractTestCaseDecoration.cs" />
2580+ <Compile Include="AssemblyHelper.cs" />
2581+ <Compile Include="AssemblyInfo.cs" />
2582+ <Compile Include="AssemblyReader.cs" />
2583+ <Compile Include="AssemblyResolver.cs" />
2584+ <Compile Include="ActionsHelper.cs" />
2585+ <Compile Include="AsyncSynchronizationContext.cs" />
2586+ <Compile Include="Builders\CombinatorialStrategy.cs" />
2587+ <Compile Include="Builders\CombinatorialTestCaseProvider.cs" />
2588+ <Compile Include="Builders\CombiningStrategy.cs" />
2589+ <Compile Include="Builders\DatapointProvider.cs" />
2590+ <Compile Include="Builders\InlineDataPointProvider.cs" />
2591+ <Compile Include="Builders\LegacySuiteBuilder.cs" />
2592+ <Compile Include="Builders\NUnitTestCaseBuilder.cs" />
2593+ <Compile Include="Builders\NUnitTestFixtureBuilder.cs" />
2594+ <Compile Include="Builders\PairwiseStrategy.cs" />
2595+ <Compile Include="Builders\ProviderCache.cs" />
2596+ <Compile Include="Builders\ProviderInfo.cs" />
2597+ <Compile Include="Builders\SequentialStrategy.cs" />
2598+ <Compile Include="Builders\SetUpFixtureBuilder.cs" />
2599+ <Compile Include="Builders\TestAssemblyBuilder.cs" />
2600+ <Compile Include="Builders\TestCaseParameterProvider.cs" />
2601+ <Compile Include="Builders\TestCaseSourceProvider.cs" />
2602+ <Compile Include="Builders\ValueSourceProvider.cs" />
2603+ <Compile Include="ContextDictionary.cs" />
2604+ <Compile Include="CoreExtensions.cs" />
2605+ <Compile Include="CultureDetector.cs" />
2606+ <Compile Include="DirectorySwapper.cs" />
2607+ <Compile Include="DomainAgent.cs" />
2608+ <Compile Include="EventListenerTextWriter.cs" />
2609+ <Compile Include="EventPump.cs" />
2610+ <Compile Include="EventQueue.cs" />
2611+ <Compile Include="ExpectedExceptionProcessor.cs" />
2612+ <Compile Include="Extensibility\DataPointProviders.cs" />
2613+ <Compile Include="Extensibility\EventListenerCollection.cs" />
2614+ <Compile Include="Extensibility\FrameworkRegistry.cs" />
2615+ <Compile Include="Extensibility\SuiteBuilderCollection.cs" />
2616+ <Compile Include="Extensibility\TestCaseBuilderCollection.cs" />
2617+ <Compile Include="Extensibility\TestCaseProviders.cs" />
2618+ <Compile Include="Extensibility\TestDecoratorCollection.cs" />
2619+ <Compile Include="ExtensionHost.cs" />
2620+ <Compile Include="ExtensionPoint.cs" />
2621+ <Compile Include="IgnoreDecorator.cs" />
2622+ <Compile Include="InternalTrace.cs" />
2623+ <Compile Include="InternalTraceWriter.cs" />
2624+ <Compile Include="InvalidSuiteException.cs" />
2625+ <Compile Include="InvalidTestFixtureException.cs" />
2626+ <Compile Include="LegacySuite.cs" />
2627+ <Compile Include="Log4NetCapture.cs" />
2628+ <Compile Include="Logger.cs" />
2629+ <Compile Include="MethodHelper.cs" />
2630+ <Compile Include="NamespaceSuite.cs" />
2631+ <Compile Include="NamespaceTreeBuilder.cs" />
2632+ <Compile Include="NoTestFixturesException.cs" />
2633+ <Compile Include="NullListener.cs" />
2634+ <Compile Include="NUnitAsyncTestMethod.cs" />
2635+ <Compile Include="NUnitConfiguration.cs" />
2636+ <Compile Include="NUnitException.cs" />
2637+ <Compile Include="NUnitFramework.cs" />
2638+ <Compile Include="NUnitTestFixture.cs" />
2639+ <Compile Include="NUnitTestMethod.cs" />
2640+ <Compile Include="ParameterizedFixtureSuite.cs" />
2641+ <Compile Include="ParameterizedTestMethodSuite.cs" />
2642+ <Compile Include="PlatformHelper.cs" />
2643+ <Compile Include="ProjectRootSuite.cs" />
2644+ <Compile Include="ProxyTestRunner.cs" />
2645+ <Compile Include="QueuingEventListener.cs" />
2646+ <Compile Include="Reflect.cs" />
2647+ <Compile Include="RemoteTestRunner.cs" />
2648+ <Compile Include="SetUpFixture.cs" />
2649+ <Compile Include="SimpleTestRunner.cs" />
2650+ <Compile Include="StringTextWriter.cs" />
2651+ <Compile Include="SuiteBuilderAttribute.cs" />
2652+ <Compile Include="TestAction.cs" />
2653+ <Compile Include="TestAssembly.cs" />
2654+ <Compile Include="TestBuilderAttribute.cs" />
2655+ <Compile Include="TestCaseBuilderAttribute.cs" />
2656+ <Compile Include="TestDecoratorAttribute.cs" />
2657+ <Compile Include="TestExecutionContext.cs" />
2658+ <Compile Include="TestFixture.cs" />
2659+ <Compile Include="TestFixtureBuilder.cs" />
2660+ <Compile Include="TestMethod.cs" />
2661+ <Compile Include="TestRunnerThread.cs" />
2662+ <Compile Include="TestSuite.cs" />
2663+ <Compile Include="TestSuiteBuilder.cs" />
2664+ <Compile Include="TestThread.cs" />
2665+ <Compile Include="TextCapture.cs" />
2666+ <Compile Include="ThreadedTestRunner.cs" />
2667+ <Compile Include="ThreadUtility.cs" />
2668+ <Compile Include="TypeHelper.cs" />
2669+ </ItemGroup>
2670+ <ItemGroup>
2671+ <None Include="nunit.core.build" />
2672+ </ItemGroup>
2673+ <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
2674+ <PropertyGroup>
2675+ <PreBuildEvent>
2676+ </PreBuildEvent>
2677+ <PostBuildEvent>
2678+ </PostBuildEvent>
2679+ </PropertyGroup>
2680 </Project>
2681\ No newline at end of file
2682
2683=== modified file 'src/NUnitCore/interfaces/RuntimeFramework.cs'
2684--- src/NUnitCore/interfaces/RuntimeFramework.cs 2011-11-26 18:03:03 +0000
2685+++ src/NUnitCore/interfaces/RuntimeFramework.cs 2012-10-03 23:32:21 +0000
2686@@ -79,6 +79,8 @@
2687
2688 if (version.Major == 3)
2689 this.clrVersion = new Version(2, 0, 50727);
2690+ if(version.Major == 4)
2691+ this.clrVersion = new Version(4, 0, 30319);
2692 //else if (runtime == RuntimeType.Mono && version.Major == 1)
2693 //{
2694 // if (version.Minor == 0)
2695
2696=== added directory 'src/NUnitCore/tests-net45'
2697=== added file 'src/NUnitCore/tests-net45/NUnitAsyncTestMethodTests.cs'
2698--- src/NUnitCore/tests-net45/NUnitAsyncTestMethodTests.cs 1970-01-01 00:00:00 +0000
2699+++ src/NUnitCore/tests-net45/NUnitAsyncTestMethodTests.cs 2012-10-03 23:32:21 +0000
2700@@ -0,0 +1,109 @@
2701+#if NET_3_5 || NET_4_0 || NET_4_5
2702+using System;
2703+using System.Collections;
2704+using System.Linq.Expressions;
2705+using System.Reflection;
2706+using System.Threading;
2707+using NUnit.Core;
2708+using NUnit.Core.Builders;
2709+using NUnit.Framework;
2710+using test_assembly_net45;
2711+
2712+namespace nunit.core.tests.net45
2713+{
2714+ [TestFixture]
2715+ public class NUnitAsyncTestMethodTests
2716+ {
2717+ private NUnitTestCaseBuilder _builder;
2718+
2719+ [SetUp]
2720+ public void Setup()
2721+ {
2722+ _builder = new NUnitTestCaseBuilder();
2723+ }
2724+
2725+ public IEnumerable TestCases
2726+ {
2727+ get
2728+ {
2729+ yield return new object[] { Method("AsyncVoidSuccess"), ResultState.Success, 1 };
2730+ yield return new object[] { Method("AsyncVoidFailure"), ResultState.Failure, 1 };
2731+ yield return new object[] { Method("AsyncVoidError"), ResultState.Error, 0 };
2732+
2733+ yield return new object[] { Method("AsyncTaskSuccess"), ResultState.Success, 1 };
2734+ yield return new object[] { Method("AsyncTaskFailure"), ResultState.Failure, 1 };
2735+ yield return new object[] { Method("AsyncTaskError"), ResultState.Error, 0 };
2736+
2737+ yield return new object[] { Method("AsyncTaskResultSuccess"), ResultState.Success, 1 };
2738+ yield return new object[] { Method("AsyncTaskResultFailure"), ResultState.Failure, 1 };
2739+ yield return new object[] { Method("AsyncTaskResultError"), ResultState.Error, 0 };
2740+
2741+ yield return new object[] { Method("AsyncTaskResultCheckSuccess"), ResultState.Success, 0 };
2742+ //yield return new object[] { Method("AsyncVoidTestCaseWithParametersSuccess(0, 0)), ResultState.Success, 1 };
2743+ yield return new object[] { Method("AsyncTaskResultCheckSuccessReturningNull"), ResultState.Success, 0 };
2744+ yield return new object[] { Method("AsyncTaskResultCheckFailure"), ResultState.Failure, 0 };
2745+ yield return new object[] { Method("AsyncTaskResultCheckError"), ResultState.Failure, 0 };
2746+
2747+ yield return new object[] { Method("AsyncVoidExpectedException"), ResultState.Success, 0 };
2748+ yield return new object[] { Method("AsyncTaskExpectedException"), ResultState.Success, 0 };
2749+ yield return new object[] { Method("AsyncTaskResultExpectedException"), ResultState.Success, 0 };
2750+
2751+ yield return new object[] { Method("NestedAsyncVoidSuccess"), ResultState.Success, 1 };
2752+ yield return new object[] { Method("NestedAsyncVoidFailure"), ResultState.Failure, 1 };
2753+ yield return new object[] { Method("NestedAsyncVoidError"), ResultState.Error, 0 };
2754+
2755+ yield return new object[] { Method("NestedAsyncTaskSuccess"), ResultState.Success, 1 };
2756+ yield return new object[] { Method("NestedAsyncTaskFailure"), ResultState.Failure, 1 };
2757+ yield return new object[] { Method("NestedAsyncTaskError"), ResultState.Error, 0 };
2758+
2759+ yield return new object[] { Method("AsyncVoidMultipleSuccess"), ResultState.Success, 1 };
2760+ yield return new object[] { Method("AsyncVoidMultipleFailure"), ResultState.Failure, 1 };
2761+ yield return new object[] { Method("AsyncVoidMultipleError"), ResultState.Error, 0 };
2762+
2763+ yield return new object[] { Method("AsyncTaskMultipleSuccess"), ResultState.Success, 1 };
2764+ yield return new object[] { Method("AsyncTaskMultipleFailure"), ResultState.Failure, 1 };
2765+ yield return new object[] { Method("AsyncTaskMultipleError"), ResultState.Error, 0 };
2766+ }
2767+ }
2768+
2769+ [Test]
2770+ [TestCaseSource("TestCases")]
2771+ public void RunTests(MethodInfo testMethod, ResultState resultState, int assertionCount)
2772+ {
2773+ var method = _builder.BuildFrom(testMethod);
2774+
2775+ var result = method.Run(new NullListener(), TestFilter.Empty);
2776+
2777+ Assert.That(result.Executed, Is.True, "Was not executed");
2778+ Assert.That(result.ResultState, Is.EqualTo(resultState), "Wrong result state");
2779+ Assert.That(result.AssertCount, Is.EqualTo(assertionCount), "Wrong assertion count");
2780+ }
2781+
2782+ [Test]
2783+ public void SynchronizationContextSwitching()
2784+ {
2785+ var context = new CustomSynchronizationContext();
2786+
2787+ SynchronizationContext.SetSynchronizationContext(context);
2788+
2789+ var method = _builder.BuildFrom(Method("AsyncVoidAssertSynchrnoizationContext"));
2790+
2791+ var result = method.Run(new NullListener(), TestFilter.Empty);
2792+
2793+ Assert.AreSame(context, SynchronizationContext.Current);
2794+ Assert.That(result.Executed, Is.True, "Was not executed");
2795+ Assert.That(result.ResultState, Is.EqualTo(ResultState.Success), "Wrong result state");
2796+ Assert.That(result.AssertCount, Is.EqualTo(1), "Wrong assertion count");
2797+ }
2798+
2799+ private static MethodInfo Method(string name)
2800+ {
2801+ return typeof (AsyncRealFixture).GetMethod(name);
2802+ }
2803+
2804+ public class CustomSynchronizationContext : SynchronizationContext
2805+ {
2806+ }
2807+ }
2808+}
2809+#endif
2810\ No newline at end of file
2811
2812=== added file 'src/NUnitCore/tests-net45/NUnitTestCaseBuilderTests.cs'
2813--- src/NUnitCore/tests-net45/NUnitTestCaseBuilderTests.cs 1970-01-01 00:00:00 +0000
2814+++ src/NUnitCore/tests-net45/NUnitTestCaseBuilderTests.cs 2012-10-03 23:32:21 +0000
2815@@ -0,0 +1,108 @@
2816+#if NET_3_5 || NET_4_0 || NET_4_5
2817+using System.Reflection;
2818+using NUnit.Core;
2819+using NUnit.Core.Builders;
2820+using NUnit.Framework;
2821+using test_assembly_net45;
2822+
2823+namespace nunit.core.tests.net45
2824+{
2825+ [TestFixture]
2826+ public class NUnitTestCaseBuilderTests
2827+ {
2828+ private NUnitTestCaseBuilder _sut;
2829+
2830+ [SetUp]
2831+ public void Setup()
2832+ {
2833+ _sut = new NUnitTestCaseBuilder();
2834+ }
2835+
2836+ [Test]
2837+ public void Async_void()
2838+ {
2839+ var built = _sut.BuildFrom(Method("Void"));
2840+
2841+ Assert.That(built, Is.InstanceOf<NUnitAsyncTestMethod>());
2842+ Assert.That(built.RunState, Is.EqualTo(RunState.Runnable));
2843+ }
2844+
2845+ [Test]
2846+ public void Async_task()
2847+ {
2848+ var built = _sut.BuildFrom(Method("PlainTask"));
2849+
2850+ Assert.That(built, Is.InstanceOf<NUnitAsyncTestMethod>());
2851+ Assert.That(built.RunState, Is.EqualTo(RunState.Runnable));
2852+ }
2853+
2854+ [Test]
2855+ public void Async_task_testcase_result_check()
2856+ {
2857+ var built = _sut.BuildFrom(Method("AsyncTaskTestCase"));
2858+
2859+ var testMethod = built.Tests[0] as NUnitAsyncTestMethod;
2860+
2861+ Assert.IsNotNull(testMethod);
2862+
2863+ Assert.That(testMethod.RunState, Is.EqualTo(RunState.NotRunnable));
2864+ }
2865+
2866+ [Test]
2867+ public void Async_void_testcase_result_check()
2868+ {
2869+ var built = _sut.BuildFrom(Method("AsyncTaskTestCase"));
2870+
2871+ var testMethod = built.Tests[0] as NUnitAsyncTestMethod;
2872+
2873+ Assert.IsNotNull(testMethod);
2874+
2875+ Assert.That(testMethod.RunState, Is.EqualTo(RunState.NotRunnable));
2876+ }
2877+
2878+ [Test]
2879+ public void Async_task_with_result_testcase_result_check()
2880+ {
2881+ var built = _sut.BuildFrom(Method("AsyncTaskWithResultTestCase"));
2882+
2883+ var testMethod = built.Tests[0] as NUnitAsyncTestMethod;
2884+
2885+ Assert.IsNotNull(testMethod);
2886+
2887+ Assert.That(testMethod.RunState, Is.EqualTo(RunState.Runnable));
2888+ }
2889+
2890+ [Test]
2891+ public void Async_task_with_result()
2892+ {
2893+ var built = _sut.BuildFrom(Method("TaskWithResult"));
2894+
2895+ Assert.That(built, Is.InstanceOf<NUnitAsyncTestMethod>());
2896+ Assert.That(built.RunState, Is.EqualTo(RunState.Runnable));
2897+ }
2898+
2899+ [Test]
2900+ public void Non_async_task()
2901+ {
2902+ var built = _sut.BuildFrom(Method("NonAsyncTask"));
2903+
2904+ Assert.That(built, Is.Not.InstanceOf<NUnitAsyncTestMethod>());
2905+ Assert.That(built.RunState, Is.EqualTo(RunState.NotRunnable));
2906+ }
2907+
2908+ [Test]
2909+ public void Non_async_task_with_result()
2910+ {
2911+ var built = _sut.BuildFrom(Method("NonAsyncTaskWithResult"));
2912+
2913+ Assert.That(built, Is.Not.InstanceOf<NUnitAsyncTestMethod>());
2914+ Assert.That(built.RunState, Is.EqualTo(RunState.NotRunnable));
2915+ }
2916+
2917+ public MethodInfo Method(string name)
2918+ {
2919+ return typeof (AsyncDummyFixture).GetMethod(name);
2920+ }
2921+ }
2922+}
2923+#endif
2924\ No newline at end of file
2925
2926=== added directory 'src/NUnitCore/tests-net45/Properties'
2927=== added file 'src/NUnitCore/tests-net45/nunit.core.tests.net45.build'
2928--- src/NUnitCore/tests-net45/nunit.core.tests.net45.build 1970-01-01 00:00:00 +0000
2929+++ src/NUnitCore/tests-net45/nunit.core.tests.net45.build 2012-10-03 23:32:21 +0000
2930@@ -0,0 +1,48 @@
2931+<?xml version="1.0"?>
2932+<project name="NUnitCoreTestsNet45" default="build" basedir=".">
2933+
2934+ <patternset id="source-files">
2935+ <include name="NUnitTestCaseBuilderTests.cs"/>
2936+ <include name="NUnitAsyncTestMethodTests.cs"/>
2937+ </patternset>
2938+
2939+ <target name="build">
2940+ <property name="previousFramework" value="${nant.settings.currentframework}"/>
2941+ <property name="nant.settings.currentframework" value="net-4.5"/>
2942+ <csc target="library"
2943+ output="${current.test.dir}/nunit.core.tests.net45.dll"
2944+ debug="${build.debug}"
2945+ define="${build.defines}">
2946+ <nowarn>
2947+ <warning number="618,672"/>
2948+ </nowarn>
2949+ <sources>
2950+ <patternset refid="source-files"/>
2951+ <include name="../../GeneratedAssemblyInfo.cs"/>
2952+ </sources>
2953+ <resources prefix="NUnit.Core.Tests.45">
2954+ <include name="Results.xsd"/>
2955+ </resources>
2956+ <references>
2957+ <include name="${current.framework.dir}/nunit.framework.dll"/>
2958+ <include name="${current.lib.dir}/nunit.core.interfaces.dll"/>
2959+ <include name="${current.lib.dir}/nunit.core.dll"/>
2960+ <include name="${current.lib.dir}/nunit.util.dll"/>
2961+ <include name="${current.test.dir}/test-assembly-net45.dll"/>
2962+ </references>
2963+ </csc>
2964+ <property name="nant.settings.currentframework" value="${previousFramework}"/>
2965+ </target>
2966+
2967+ <target name="package">
2968+ <copy todir="${package.src.dir}/NUnitCore/tests-net45">
2969+ <fileset>
2970+ <patternset refid="source-files"/>
2971+ <include name="Results.xsd"/>
2972+ <include name="nunit.core.tests.net45.csproj"/>
2973+ <include name="nunit.core.tests.net45.build"/>
2974+ </fileset>
2975+ </copy>
2976+ </target>
2977+
2978+</project>
2979\ No newline at end of file
2980
2981=== added file 'src/NUnitCore/tests-net45/nunit.core.tests.net45.csproj'
2982--- src/NUnitCore/tests-net45/nunit.core.tests.net45.csproj 1970-01-01 00:00:00 +0000
2983+++ src/NUnitCore/tests-net45/nunit.core.tests.net45.csproj 2012-10-03 23:32:21 +0000
2984@@ -0,0 +1,84 @@
2985+<?xml version="1.0" encoding="utf-8"?>
2986+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2987+ <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
2988+ <PropertyGroup>
2989+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
2990+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
2991+ <ProjectGuid>{689A54F0-2B54-4D15-96A7-D8B6E6FE32B1}</ProjectGuid>
2992+ <OutputType>Library</OutputType>
2993+ <AppDesignerFolder>Properties</AppDesignerFolder>
2994+ <RootNamespace>nunit.core.tests.net45</RootNamespace>
2995+ <AssemblyName>nunit.core.tests.45</AssemblyName>
2996+ <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
2997+ <FileAlignment>512</FileAlignment>
2998+ <TargetFrameworkProfile />
2999+ </PropertyGroup>
3000+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
3001+ <DebugSymbols>true</DebugSymbols>
3002+ <DebugType>full</DebugType>
3003+ <Optimize>false</Optimize>
3004+ <OutputPath>..\..\..\bin\Debug\tests\</OutputPath>
3005+ <DefineConstants>TRACE;DEBUG;CLR_2_0,NET_3_5,CS_3_0,CLR_4_0,NET_4_0,NET_4_5</DefineConstants>
3006+ <ErrorReport>prompt</ErrorReport>
3007+ <WarningLevel>4</WarningLevel>
3008+ <Prefer32Bit>false</Prefer32Bit>
3009+ </PropertyGroup>
3010+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
3011+ <DebugType>pdbonly</DebugType>
3012+ <Optimize>true</Optimize>
3013+ <OutputPath>bin\Release\</OutputPath>
3014+ <DefineConstants>TRACE</DefineConstants>
3015+ <ErrorReport>prompt</ErrorReport>
3016+ <WarningLevel>4</WarningLevel>
3017+ <Prefer32Bit>false</Prefer32Bit>
3018+ </PropertyGroup>
3019+ <ItemGroup>
3020+ <Reference Include="System" />
3021+ <Reference Include="System.Core" />
3022+ <Reference Include="System.Xml.Linq" />
3023+ <Reference Include="System.Xml" />
3024+ </ItemGroup>
3025+ <ItemGroup>
3026+ <Compile Include="..\..\CommonAssemblyInfo.cs">
3027+ <Link>CommonAssemblyInfo.cs</Link>
3028+ </Compile>
3029+ <Compile Include="NUnitAsyncTestMethodTests.cs" />
3030+ <Compile Include="NUnitTestCaseBuilderTests.cs" />
3031+ </ItemGroup>
3032+ <ItemGroup>
3033+ <None Include="nunit.core.tests.net45.build" />
3034+ </ItemGroup>
3035+ <ItemGroup>
3036+ <Folder Include="Properties\" />
3037+ </ItemGroup>
3038+ <ItemGroup>
3039+ <ProjectReference Include="..\..\NUnitFramework\framework\nunit.framework.dll.csproj">
3040+ <Project>{83dd7e12-a705-4dba-9d71-09c8973d9382}</Project>
3041+ <Name>nunit.framework.dll</Name>
3042+ </ProjectReference>
3043+ <ProjectReference Include="..\..\tests\test-assembly-net45\test-assembly-net45.csproj">
3044+ <Project>{74CCEAEA-CDBF-4FE0-BF0D-914C3C44ECE9}</Project>
3045+ <Name>test-assembly-net45</Name>
3046+ </ProjectReference>
3047+ <ProjectReference Include="..\..\tests\test-assembly\test-assembly.csproj">
3048+ <Project>{1960CAC4-9A82-47C5-A9B3-55BC37572C3C}</Project>
3049+ <Name>test-assembly</Name>
3050+ </ProjectReference>
3051+ <ProjectReference Include="..\core\nunit.core.dll.csproj">
3052+ <Project>{ebd43a7f-afca-4281-bb53-5cdd91f966a3}</Project>
3053+ <Name>nunit.core.dll</Name>
3054+ </ProjectReference>
3055+ <ProjectReference Include="..\interfaces\nunit.core.interfaces.dll.csproj">
3056+ <Project>{435428f8-5995-4ce4-8022-93d595a8cc0f}</Project>
3057+ <Name>nunit.core.interfaces.dll</Name>
3058+ </ProjectReference>
3059+ </ItemGroup>
3060+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
3061+ <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
3062+ Other similar extension points exist, see Microsoft.Common.targets.
3063+ <Target Name="BeforeBuild">
3064+ </Target>
3065+ <Target Name="AfterBuild">
3066+ </Target>
3067+ -->
3068+</Project>
3069\ No newline at end of file
3070
3071=== modified file 'src/NUnitCore/tests/CoreExtensionsTests.cs'
3072--- src/NUnitCore/tests/CoreExtensionsTests.cs 2011-03-30 20:37:44 +0000
3073+++ src/NUnitCore/tests/CoreExtensionsTests.cs 2012-10-03 23:32:21 +0000
3074@@ -6,7 +6,7 @@
3075 using System;
3076 using System.Text;
3077 using System.Reflection;
3078-#if NET_3_5 || NET_4_0
3079+#if NET_3_5 || NET_4_0 || NET_4_5
3080 using NSubstitute;
3081 #endif
3082 using NUnit.Framework;
3083@@ -123,7 +123,7 @@
3084 Assert.AreEqual("mock0mock1mock3cmock3bmock3amock5bmock5amock8mock9", sb.ToString());
3085 }
3086
3087-#if NET_3_5 || NET_4_0
3088+#if NET_3_5 || NET_4_0 || NET_4_5
3089 [Test, Platform("Net-3.5,Mono-3.5,Net-4.0")]
3090 public void CanAddDecorator()
3091 {
3092
3093=== modified file 'src/NUnitCore/tests/DatapointTests.cs'
3094--- src/NUnitCore/tests/DatapointTests.cs 2012-02-21 03:31:35 +0000
3095+++ src/NUnitCore/tests/DatapointTests.cs 2012-10-03 23:32:21 +0000
3096@@ -50,7 +50,7 @@
3097 }
3098
3099 #if CLR_2_0 || CLR_4_0
3100-#if CS_3_0 || CS_4_0
3101+#if CS_3_0 || CS_4_0 || CS_5_0
3102 [Test]
3103 public void WorksOnIEnumerableOfT()
3104 {
3105
3106=== modified file 'src/NUnitCore/tests/PlatformDetectionTests.cs'
3107--- src/NUnitCore/tests/PlatformDetectionTests.cs 2011-11-02 23:34:22 +0000
3108+++ src/NUnitCore/tests/PlatformDetectionTests.cs 2012-10-03 23:32:21 +0000
3109@@ -5,7 +5,8 @@
3110 // ****************************************************************
3111
3112 using System;
3113-using System.Collections;
3114+using System.Collections;
3115+using System.Diagnostics;
3116 using NUnit.Framework;
3117
3118 namespace NUnit.Core.Tests
3119@@ -39,7 +40,7 @@
3120 CheckPlatforms(
3121 new PlatformHelper( OSPlatform.CurrentPlatform, runtimeFramework ),
3122 expectedPlatforms,
3123- PlatformHelper.RuntimePlatforms + ",NET-1.0,NET-1.1,NET-2.0,NET-3.0,NET-3.5,NET-4.0,MONO-1.0,MONO-2.0,MONO-3.0,MONO-3.5,MONO-4.0" );
3124+ PlatformHelper.RuntimePlatforms + ",NET-1.0,NET-1.1,NET-2.0,NET-3.0,NET-3.5,NET-4.0,NET-4.5,MONO-1.0,MONO-2.0,MONO-3.0,MONO-3.5,MONO-4.0" );
3125 }
3126
3127 private void CheckPlatforms( PlatformHelper helper,
3128@@ -239,12 +240,20 @@
3129 }
3130
3131 [Test]
3132- public void DetectNet40()
3133- {
3134+ public void DetectNet40()
3135+ {
3136 CheckRuntimePlatforms(
3137 new RuntimeFramework(RuntimeType.Net, new Version(4, 0, 30319, 0)),
3138 "Net,Net-4.0");
3139- }
3140+ }
3141+
3142+ [Test]
3143+ public void DetectNet45()
3144+ {
3145+ CheckRuntimePlatforms(
3146+ new RuntimeFramework(RuntimeType.Net, new Version(4, 5)),
3147+ "Net,Net-4.0,Net-4.5");
3148+ }
3149
3150 [Test]
3151 public void DetectNetCF()
3152
3153=== modified file 'src/NUnitCore/tests/RuntimeFrameworkTests.cs'
3154--- src/NUnitCore/tests/RuntimeFrameworkTests.cs 2012-02-21 03:31:35 +0000
3155+++ src/NUnitCore/tests/RuntimeFrameworkTests.cs 2012-10-03 23:32:21 +0000
3156@@ -4,7 +4,8 @@
3157 // obtain a copy of the license at http://nunit.org
3158 // ****************************************************************
3159
3160-using System;
3161+using System;
3162+using System.Diagnostics;
3163 using NUnit.Framework;
3164
3165 namespace NUnit.Core.Tests
3166@@ -18,9 +19,9 @@
3167 [Test]
3168 public void CanGetCurrentFramework()
3169 {
3170- RuntimeFramework framework = RuntimeFramework.CurrentFramework;
3171+ RuntimeFramework framework = RuntimeFramework.CurrentFramework;
3172
3173- Assert.That(framework.Runtime, Is.EqualTo(currentRuntime));
3174+ Assert.That(framework.Runtime, Is.EqualTo(currentRuntime));
3175 Assert.That(framework.ClrVersion, Is.EqualTo(Environment.Version));
3176 }
3177
3178
3179=== modified file 'src/NUnitCore/tests/TestRunnerThreadTests.cs'
3180--- src/NUnitCore/tests/TestRunnerThreadTests.cs 2012-01-10 23:03:38 +0000
3181+++ src/NUnitCore/tests/TestRunnerThreadTests.cs 2012-10-03 23:32:21 +0000
3182@@ -4,7 +4,7 @@
3183 // obtain a copy of the license at http://nunit.org
3184 // ****************************************************************
3185
3186-#if NET_3_5 || NET_4_0
3187+#if NET_3_5 || NET_4_0 || NET_4_5
3188 using System;
3189 using System.Threading;
3190 using NSubstitute;
3191
3192=== modified file 'src/NUnitCore/tests/nunit.core.tests.csproj'
3193--- src/NUnitCore/tests/nunit.core.tests.csproj 2012-08-08 03:34:12 +0000
3194+++ src/NUnitCore/tests/nunit.core.tests.csproj 2012-10-03 23:32:21 +0000
3195@@ -1,254 +1,256 @@
3196-<?xml version="1.0" encoding="utf-8"?>
3197-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
3198- <PropertyGroup>
3199- <ProjectType>Local</ProjectType>
3200- <ProductVersion>9.0.30729</ProductVersion>
3201- <SchemaVersion>2.0</SchemaVersion>
3202- <ProjectGuid>{DD758D21-E5D5-4D40-9450-5F65A32F359C}</ProjectGuid>
3203- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
3204- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
3205- <AssemblyKeyContainerName>
3206- </AssemblyKeyContainerName>
3207- <AssemblyName>nunit.core.tests</AssemblyName>
3208- <DefaultClientScript>JScript</DefaultClientScript>
3209- <DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout>
3210- <DefaultTargetSchema>IE50</DefaultTargetSchema>
3211- <DelaySign>false</DelaySign>
3212- <OutputType>Library</OutputType>
3213- <RootNamespace>NUnit.Core.Tests</RootNamespace>
3214- <RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
3215- <FileUpgradeFlags>
3216- </FileUpgradeFlags>
3217- <UpgradeBackupLocation>
3218- </UpgradeBackupLocation>
3219- <OldToolsVersion>3.5</OldToolsVersion>
3220- <IsWebBootstrapper>true</IsWebBootstrapper>
3221- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
3222- <PublishUrl>http://localhost/nunit.core.tests/</PublishUrl>
3223- <Install>true</Install>
3224- <InstallFrom>Web</InstallFrom>
3225- <UpdateEnabled>true</UpdateEnabled>
3226- <UpdateMode>Foreground</UpdateMode>
3227- <UpdateInterval>7</UpdateInterval>
3228- <UpdateIntervalUnits>Days</UpdateIntervalUnits>
3229- <UpdatePeriodically>false</UpdatePeriodically>
3230- <UpdateRequired>false</UpdateRequired>
3231- <MapFileExtensions>true</MapFileExtensions>
3232- <ApplicationRevision>0</ApplicationRevision>
3233- <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
3234- <UseApplicationTrust>false</UseApplicationTrust>
3235- <BootstrapperEnabled>true</BootstrapperEnabled>
3236- </PropertyGroup>
3237- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
3238- <OutputPath>..\..\..\bin\Debug\tests\</OutputPath>
3239- <BaseAddress>285212672</BaseAddress>
3240- <ConfigurationOverrideFile>
3241- </ConfigurationOverrideFile>
3242- <DefineConstants>TRACE;DEBUG;CLR_2_0,NET_3_5,CS_3_0</DefineConstants>
3243- <DocumentationFile>
3244- </DocumentationFile>
3245- <DebugSymbols>true</DebugSymbols>
3246- <FileAlignment>4096</FileAlignment>
3247- <NoWarn>618</NoWarn>
3248- <Optimize>false</Optimize>
3249- <RegisterForComInterop>false</RegisterForComInterop>
3250- <RemoveIntegerChecks>false</RemoveIntegerChecks>
3251- <WarningLevel>4</WarningLevel>
3252- <DebugType>full</DebugType>
3253- <ErrorReport>prompt</ErrorReport>
3254- <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
3255- </PropertyGroup>
3256- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
3257- <OutputPath>..\..\..\bin\Release\tests\</OutputPath>
3258- <BaseAddress>285212672</BaseAddress>
3259- <ConfigurationOverrideFile>
3260- </ConfigurationOverrideFile>
3261- <DefineConstants>TRACE;CLR_2_0,NET_3_5,CS_3_0</DefineConstants>
3262- <DocumentationFile>
3263- </DocumentationFile>
3264- <FileAlignment>4096</FileAlignment>
3265- <NoWarn>618</NoWarn>
3266- <Optimize>true</Optimize>
3267- <RegisterForComInterop>false</RegisterForComInterop>
3268- <RemoveIntegerChecks>false</RemoveIntegerChecks>
3269- <WarningLevel>4</WarningLevel>
3270- <DebugType>none</DebugType>
3271- <ErrorReport>prompt</ErrorReport>
3272- <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
3273- </PropertyGroup>
3274- <ItemGroup>
3275- <Reference Include="System">
3276- <Name>System</Name>
3277- </Reference>
3278- <Reference Include="System.Core">
3279- <RequiredTargetFramework>3.5</RequiredTargetFramework>
3280- </Reference>
3281- <Reference Include="System.Data">
3282- <Name>System.Data</Name>
3283- </Reference>
3284- <Reference Include="System.Xml">
3285- <Name>System.XML</Name>
3286- </Reference>
3287- <ProjectReference Include="..\..\ClientUtilities\util\nunit.util.dll.csproj">
3288- <Name>nunit.util.dll</Name>
3289- <Project>{61CE9CE5-943E-44D4-A381-814DC1406767}</Project>
3290- <Private>False</Private>
3291- </ProjectReference>
3292- <ProjectReference Include="..\..\NUnitFramework\framework\nunit.framework.dll.csproj">
3293- <Name>nunit.framework.dll</Name>
3294- <Project>{83DD7E12-A705-4DBA-9D71-09C8973D9382}</Project>
3295- </ProjectReference>
3296- <ProjectReference Include="..\..\tests\mock-assembly\mock-assembly.csproj">
3297- <Name>mock-assembly</Name>
3298- <Project>{2E368281-3BA8-4050-B05E-0E0E43F8F446}</Project>
3299- <Private>False</Private>
3300- </ProjectReference>
3301- <ProjectReference Include="..\..\tests\nonamespace-assembly\nonamespace-assembly.csproj">
3302- <Name>nonamespace-assembly</Name>
3303- <Project>{5110F0D2-8E50-46F8-9E17-7C8EBFECCA9D}</Project>
3304- <Private>False</Private>
3305- </ProjectReference>
3306- <ProjectReference Include="..\..\tests\test-assembly\test-assembly.csproj">
3307- <Name>test-assembly</Name>
3308- <Project>{1960CAC4-9A82-47C5-A9B3-55BC37572C3C}</Project>
3309- </ProjectReference>
3310- <ProjectReference Include="..\..\tests\test-utilities\test-utilities.csproj">
3311- <Name>test-utilities</Name>
3312- <Project>{3E63AD0F-24D4-46BE-BEE4-5A3299847D86}</Project>
3313- </ProjectReference>
3314- <ProjectReference Include="..\core\nunit.core.dll.csproj">
3315- <Name>nunit.core.dll</Name>
3316- <Project>{EBD43A7F-AFCA-4281-BB53-5CDD91F966A3}</Project>
3317- <Private>False</Private>
3318- </ProjectReference>
3319- <ProjectReference Include="..\interfaces\nunit.core.interfaces.dll.csproj">
3320- <Name>nunit.core.interfaces.dll</Name>
3321- <Project>{435428F8-5995-4CE4-8022-93D595A8CC0F}</Project>
3322- <Private>False</Private>
3323- </ProjectReference>
3324- <Reference Include="NSubstitute">
3325- <HintPath>..\..\..\lib\3.5\NSubstitute.dll</HintPath>
3326- </Reference>
3327- </ItemGroup>
3328- <ItemGroup>
3329- <Compile Include="..\..\CommonAssemblyInfo.cs">
3330- <Link>CommonAssemblyInfo.cs</Link>
3331- </Compile>
3332- <Compile Include="ActionAttributeExceptionTests.cs" />
3333- <Compile Include="ActionAttributeTests.cs" />
3334- <Compile Include="AllTests.cs" />
3335- <Compile Include="AssemblyHelperTests.cs" />
3336- <Compile Include="AssemblyReaderTests.cs" />
3337- <Compile Include="AssemblyResolverTests.cs" />
3338- <Compile Include="AssemblyTests.cs" />
3339- <Compile Include="AssemblyVersionFixture.cs" />
3340- <Compile Include="AssertPassFixture.cs" />
3341- <Compile Include="AttributeDescriptionFixture.cs" />
3342- <Compile Include="AttributeInheritance.cs" />
3343- <Compile Include="BasicRunnerTests.cs" />
3344- <Compile Include="CallContextTests.cs" />
3345- <Compile Include="CategoryAttributeTests.cs" />
3346- <Compile Include="CombinatorialTests.cs" />
3347- <Compile Include="CoreExtensionsTests.cs" />
3348- <Compile Include="CultureSettingAndDetectionTests.cs" />
3349- <Compile Include="DatapointTests.cs" />
3350- <Compile Include="DirectorySwapperTests.cs" />
3351- <Compile Include="EventQueueTests.cs" />
3352- <Compile Include="EventTestFixture.cs" />
3353- <Compile Include="ExpectExceptionTest.cs" />
3354- <Compile Include="FailFixture.cs" />
3355- <Compile Include="FixtureSetUpTearDownTest.cs" />
3356- <Compile Include="Generic\DeduceTypeArgsFromArgs.cs" />
3357- <Compile Include="Generic\SimpleGenericFixture.cs" />
3358- <Compile Include="Generic\SimpleGenericMethods.cs" />
3359- <Compile Include="Generic\TypeParameterUsedWithTestMethod.cs" />
3360- <Compile Include="IgnoreFixture.cs" />
3361- <Compile Include="LegacySuiteTests.cs" />
3362- <Compile Include="MaxTimeTests.cs" />
3363- <Compile Include="NameFilterTest.cs" />
3364- <Compile Include="NamespaceAssemblyTests.cs" />
3365- <Compile Include="PairwiseTests.cs" />
3366- <Compile Include="ParameterizedTestFixtureTests.cs" />
3367- <Compile Include="PlatformDetectionTests.cs" />
3368- <Compile Include="PropertyAttributeTests.cs" />
3369- <Compile Include="ReflectTests.cs" />
3370- <Compile Include="RemoteRunnerTests.cs" />
3371- <Compile Include="RepeatedTestFixture.cs" />
3372- <Compile Include="RuntimeFrameworkTests.cs" />
3373- <Compile Include="SerializationBug.cs" />
3374- <Compile Include="SetCultureAttributeTests.cs" />
3375- <Compile Include="SetUpFixtureTests.cs" />
3376- <Compile Include="SetUpTest.cs" />
3377- <Compile Include="SimpleNameFilterTests.cs" />
3378- <Compile Include="SimpleTestRunnerTests.cs" />
3379- <Compile Include="StackOverflowTestFixture.cs" />
3380- <Compile Include="SuiteBuilderTests.cs" />
3381- <Compile Include="SuiteBuilderTests_Multiple.cs" />
3382- <Compile Include="TestAssemblyBuilderTests.cs" />
3383- <Compile Include="TestCaseAttributeTests.cs" />
3384- <Compile Include="TestCaseResultFixture.cs" />
3385- <Compile Include="TestCaseSourceTests.cs" />
3386- <Compile Include="TestCaseTest.cs" />
3387- <Compile Include="TestConsole.cs" />
3388- <Compile Include="TestContextTests.cs" />
3389- <Compile Include="TestDelegateFixture.cs" />
3390- <Compile Include="TestExecutionContextTests.cs" />
3391- <Compile Include="TestFixtureBuilderTests.cs" />
3392- <Compile Include="TestFixtureExtension.cs" />
3393- <Compile Include="TestFixtureTests.cs" />
3394- <Compile Include="TestFrameworkTests.cs" />
3395- <Compile Include="TestIDTests.cs" />
3396- <Compile Include="TestInfoTests.cs" />
3397- <Compile Include="TestMethodSignatureTests.cs" />
3398- <Compile Include="TestNameTests.cs" />
3399- <Compile Include="TestNodeTests.cs" />
3400- <Compile Include="TestRunnerThreadTests.cs" />
3401- <Compile Include="TestSuiteTest.cs" />
3402- <Compile Include="TheoryTests.cs" />
3403- <Compile Include="ThreadedTestRunnerTests.cs" />
3404- <Compile Include="ThreadingTests.cs" />
3405- <Compile Include="TypeHelperTests.cs" />
3406- <Compile Include="UnhandledExceptionTests.cs" />
3407- <Compile Include="ValueSourceTests.cs" />
3408- <Compile Include="XmlTest.cs" />
3409- <Compile Include="DirectoryChangeTests.cs" />
3410- </ItemGroup>
3411- <ItemGroup>
3412- <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
3413- <Visible>False</Visible>
3414- <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
3415- <Install>false</Install>
3416- </BootstrapperPackage>
3417- <BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
3418- <Visible>False</Visible>
3419- <ProductName>.NET Framework 2.0 %28x86%29</ProductName>
3420- <Install>true</Install>
3421- </BootstrapperPackage>
3422- <BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
3423- <Visible>False</Visible>
3424- <ProductName>.NET Framework 3.0 %28x86%29</ProductName>
3425- <Install>false</Install>
3426- </BootstrapperPackage>
3427- <BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
3428- <Visible>False</Visible>
3429- <ProductName>.NET Framework 3.5</ProductName>
3430- <Install>false</Install>
3431- </BootstrapperPackage>
3432- <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
3433- <Visible>False</Visible>
3434- <ProductName>.NET Framework 3.5 SP1</ProductName>
3435- <Install>false</Install>
3436- </BootstrapperPackage>
3437- </ItemGroup>
3438- <ItemGroup>
3439- <None Include="nunit.core.tests.build" />
3440- <EmbeddedResource Include="Results.xsd" />
3441- </ItemGroup>
3442- <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
3443- <PropertyGroup>
3444- <PreBuildEvent>
3445- </PreBuildEvent>
3446- <PostBuildEvent>
3447- </PostBuildEvent>
3448- </PropertyGroup>
3449+<?xml version="1.0" encoding="utf-8"?>
3450+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
3451+ <PropertyGroup>
3452+ <ProjectType>Local</ProjectType>
3453+ <ProductVersion>9.0.30729</ProductVersion>
3454+ <SchemaVersion>2.0</SchemaVersion>
3455+ <ProjectGuid>{DD758D21-E5D5-4D40-9450-5F65A32F359C}</ProjectGuid>
3456+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
3457+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
3458+ <AssemblyKeyContainerName>
3459+ </AssemblyKeyContainerName>
3460+ <AssemblyName>nunit.core.tests</AssemblyName>
3461+ <DefaultClientScript>JScript</DefaultClientScript>
3462+ <DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout>
3463+ <DefaultTargetSchema>IE50</DefaultTargetSchema>
3464+ <DelaySign>false</DelaySign>
3465+ <OutputType>Library</OutputType>
3466+ <RootNamespace>NUnit.Core.Tests</RootNamespace>
3467+ <RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
3468+ <FileUpgradeFlags>
3469+ </FileUpgradeFlags>
3470+ <UpgradeBackupLocation>
3471+ </UpgradeBackupLocation>
3472+ <OldToolsVersion>3.5</OldToolsVersion>
3473+ <IsWebBootstrapper>true</IsWebBootstrapper>
3474+ <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
3475+ <PublishUrl>http://localhost/nunit.core.tests/</PublishUrl>
3476+ <Install>true</Install>
3477+ <InstallFrom>Web</InstallFrom>
3478+ <UpdateEnabled>true</UpdateEnabled>
3479+ <UpdateMode>Foreground</UpdateMode>
3480+ <UpdateInterval>7</UpdateInterval>
3481+ <UpdateIntervalUnits>Days</UpdateIntervalUnits>
3482+ <UpdatePeriodically>false</UpdatePeriodically>
3483+ <UpdateRequired>false</UpdateRequired>
3484+ <MapFileExtensions>true</MapFileExtensions>
3485+ <ApplicationRevision>0</ApplicationRevision>
3486+ <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
3487+ <UseApplicationTrust>false</UseApplicationTrust>
3488+ <BootstrapperEnabled>true</BootstrapperEnabled>
3489+ </PropertyGroup>
3490+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
3491+ <OutputPath>..\..\..\bin\Debug\tests\</OutputPath>
3492+ <BaseAddress>285212672</BaseAddress>
3493+ <ConfigurationOverrideFile>
3494+ </ConfigurationOverrideFile>
3495+ <DefineConstants>TRACE;DEBUG;CLR_2_0,NET_3_5,CS_3_0</DefineConstants>
3496+ <DocumentationFile>
3497+ </DocumentationFile>
3498+ <DebugSymbols>true</DebugSymbols>
3499+ <FileAlignment>4096</FileAlignment>
3500+ <NoWarn>618</NoWarn>
3501+ <Optimize>false</Optimize>
3502+ <RegisterForComInterop>false</RegisterForComInterop>
3503+ <RemoveIntegerChecks>false</RemoveIntegerChecks>
3504+ <WarningLevel>4</WarningLevel>
3505+ <DebugType>full</DebugType>
3506+ <ErrorReport>prompt</ErrorReport>
3507+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
3508+ </PropertyGroup>
3509+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
3510+ <OutputPath>..\..\..\bin\Release\tests\</OutputPath>
3511+ <BaseAddress>285212672</BaseAddress>
3512+ <ConfigurationOverrideFile>
3513+ </ConfigurationOverrideFile>
3514+ <DefineConstants>TRACE;CLR_2_0,NET_3_5,CS_3_0</DefineConstants>
3515+ <DocumentationFile>
3516+ </DocumentationFile>
3517+ <FileAlignment>4096</FileAlignment>
3518+ <NoWarn>618</NoWarn>
3519+ <Optimize>true</Optimize>
3520+ <RegisterForComInterop>false</RegisterForComInterop>
3521+ <RemoveIntegerChecks>false</RemoveIntegerChecks>
3522+ <WarningLevel>4</WarningLevel>
3523+ <DebugType>none</DebugType>
3524+ <ErrorReport>prompt</ErrorReport>
3525+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
3526+ </PropertyGroup>
3527+ <ItemGroup>
3528+ <Reference Include="System">
3529+ <Name>System</Name>
3530+ </Reference>
3531+ <Reference Include="System.Core">
3532+ <RequiredTargetFramework>3.5</RequiredTargetFramework>
3533+ </Reference>
3534+ <Reference Include="System.Data">
3535+ <Name>System.Data</Name>
3536+ </Reference>
3537+ <Reference Include="System.Xml">
3538+ <Name>System.XML</Name>
3539+ </Reference>
3540+ <ProjectReference Include="..\..\ClientUtilities\util\nunit.util.dll.csproj">
3541+ <Name>nunit.util.dll</Name>
3542+ <Project>{61CE9CE5-943E-44D4-A381-814DC1406767}</Project>
3543+ <Private>False</Private>
3544+ </ProjectReference>
3545+ <ProjectReference Include="..\..\NUnitFramework\framework\nunit.framework.dll.csproj">
3546+ <Name>nunit.framework.dll</Name>
3547+ <Project>{83DD7E12-A705-4DBA-9D71-09C8973D9382}</Project>
3548+ </ProjectReference>
3549+ <ProjectReference Include="..\..\tests\mock-assembly\mock-assembly.csproj">
3550+ <Name>mock-assembly</Name>
3551+ <Project>{2E368281-3BA8-4050-B05E-0E0E43F8F446}</Project>
3552+ <Private>False</Private>
3553+ </ProjectReference>
3554+ <ProjectReference Include="..\..\tests\nonamespace-assembly\nonamespace-assembly.csproj">
3555+ <Name>nonamespace-assembly</Name>
3556+ <Project>{5110F0D2-8E50-46F8-9E17-7C8EBFECCA9D}</Project>
3557+ <Private>False</Private>
3558+ </ProjectReference>
3559+ <ProjectReference Include="..\..\tests\test-assembly\test-assembly.csproj">
3560+ <Name>test-assembly</Name>
3561+ <Project>{1960CAC4-9A82-47C5-A9B3-55BC37572C3C}</Project>
3562+ </ProjectReference>
3563+ <ProjectReference Include="..\..\tests\test-utilities\test-utilities.csproj">
3564+ <Name>test-utilities</Name>
3565+ <Project>{3E63AD0F-24D4-46BE-BEE4-5A3299847D86}</Project>
3566+ </ProjectReference>
3567+ <ProjectReference Include="..\core\nunit.core.dll.csproj">
3568+ <Name>nunit.core.dll</Name>
3569+ <Project>{EBD43A7F-AFCA-4281-BB53-5CDD91F966A3}</Project>
3570+ <Private>False</Private>
3571+ </ProjectReference>
3572+ <ProjectReference Include="..\interfaces\nunit.core.interfaces.dll.csproj">
3573+ <Name>nunit.core.interfaces.dll</Name>
3574+ <Project>{435428F8-5995-4CE4-8022-93D595A8CC0F}</Project>
3575+ <Private>False</Private>
3576+ </ProjectReference>
3577+ <Reference Include="NSubstitute">
3578+ <HintPath>..\..\..\lib\3.5\NSubstitute.dll</HintPath>
3579+ </Reference>
3580+ </ItemGroup>
3581+ <ItemGroup>
3582+ <Compile Include="..\..\CommonAssemblyInfo.cs">
3583+ <Link>CommonAssemblyInfo.cs</Link>
3584+ </Compile>
3585+ <Compile Include="ActionAttributeExceptionTests.cs" />
3586+ <Compile Include="ActionAttributeTests.cs" />
3587+ <Compile Include="AllTests.cs" />
3588+ <Compile Include="AssemblyHelperTests.cs" />
3589+ <Compile Include="AssemblyReaderTests.cs" />
3590+ <Compile Include="AssemblyResolverTests.cs" />
3591+ <Compile Include="AssemblyTests.cs" />
3592+ <Compile Include="AssemblyVersionFixture.cs" />
3593+ <Compile Include="AssertPassFixture.cs" />
3594+ <Compile Include="AttributeDescriptionFixture.cs" />
3595+ <Compile Include="AttributeInheritance.cs" />
3596+ <Compile Include="BasicRunnerTests.cs" />
3597+ <Compile Include="CallContextTests.cs" />
3598+ <Compile Include="CategoryAttributeTests.cs" />
3599+ <Compile Include="CombinatorialTests.cs" />
3600+ <Compile Include="CoreExtensionsTests.cs" />
3601+ <Compile Include="CultureSettingAndDetectionTests.cs" />
3602+ <Compile Include="DatapointTests.cs" />
3603+ <Compile Include="DirectorySwapperTests.cs" />
3604+ <Compile Include="EventQueueTests.cs" />
3605+ <Compile Include="EventTestFixture.cs" />
3606+ <Compile Include="ExpectExceptionTest.cs" />
3607+ <Compile Include="FailFixture.cs" />
3608+ <Compile Include="FixtureSetUpTearDownTest.cs" />
3609+ <Compile Include="Generic\DeduceTypeArgsFromArgs.cs" />
3610+ <Compile Include="Generic\SimpleGenericFixture.cs" />
3611+ <Compile Include="Generic\SimpleGenericMethods.cs" />
3612+ <Compile Include="Generic\TypeParameterUsedWithTestMethod.cs" />
3613+ <Compile Include="IgnoreFixture.cs" />
3614+ <Compile Include="LegacySuiteTests.cs" />
3615+ <Compile Include="MaxTimeTests.cs" />
3616+ <Compile Include="NameFilterTest.cs" />
3617+ <Compile Include="NamespaceAssemblyTests.cs" />
3618+ <Compile Include="PairwiseTests.cs" />
3619+ <Compile Include="ParameterizedTestFixtureTests.cs" />
3620+ <Compile Include="PlatformDetectionTests.cs" />
3621+ <Compile Include="PropertyAttributeTests.cs" />
3622+ <Compile Include="ReflectTests.cs" />
3623+ <Compile Include="RemoteRunnerTests.cs" />
3624+ <Compile Include="RepeatedTestFixture.cs" />
3625+ <Compile Include="RuntimeFrameworkTests.cs" />
3626+ <Compile Include="SerializationBug.cs" />
3627+ <Compile Include="SetCultureAttributeTests.cs" />
3628+ <Compile Include="SetUpFixtureTests.cs" />
3629+ <Compile Include="SetUpTest.cs" />
3630+ <Compile Include="SimpleNameFilterTests.cs" />
3631+ <Compile Include="SimpleTestRunnerTests.cs" />
3632+ <Compile Include="StackOverflowTestFixture.cs" />
3633+ <Compile Include="SuiteBuilderTests.cs" />
3634+ <Compile Include="SuiteBuilderTests_Multiple.cs" />
3635+ <Compile Include="TestAssemblyBuilderTests.cs" />
3636+ <Compile Include="TestCaseAttributeTests.cs" />
3637+ <Compile Include="TestCaseResultFixture.cs" />
3638+ <Compile Include="TestCaseSourceTests.cs" />
3639+ <Compile Include="TestCaseTest.cs" />
3640+ <Compile Include="TestConsole.cs" />
3641+ <Compile Include="TestContextTests.cs" />
3642+ <Compile Include="TestDelegateFixture.cs" />
3643+ <Compile Include="TestExecutionContextTests.cs" />
3644+ <Compile Include="TestFixtureBuilderTests.cs" />
3645+ <Compile Include="TestFixtureExtension.cs" />
3646+ <Compile Include="TestFixtureTests.cs" />
3647+ <Compile Include="TestFrameworkTests.cs" />
3648+ <Compile Include="TestIDTests.cs" />
3649+ <Compile Include="TestInfoTests.cs" />
3650+ <Compile Include="TestMethodSignatureTests.cs" />
3651+ <Compile Include="TestNameTests.cs" />
3652+ <Compile Include="TestNodeTests.cs" />
3653+ <Compile Include="TestRunnerThreadTests.cs" />
3654+ <Compile Include="TestSuiteTest.cs" />
3655+ <Compile Include="TheoryTests.cs" />
3656+ <Compile Include="ThreadedTestRunnerTests.cs" />
3657+ <Compile Include="ThreadingTests.cs" />
3658+ <Compile Include="TypeHelperTests.cs" />
3659+ <Compile Include="UnhandledExceptionTests.cs" />
3660+ <Compile Include="ValueSourceTests.cs" />
3661+ <Compile Include="XmlTest.cs" />
3662+ <Compile Include="DirectoryChangeTests.cs" />
3663+ </ItemGroup>
3664+ <ItemGroup>
3665+ <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
3666+ <Visible>False</Visible>
3667+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
3668+ <Install>false</Install>
3669+ </BootstrapperPackage>
3670+ <BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
3671+ <Visible>False</Visible>
3672+ <ProductName>.NET Framework 2.0 %28x86%29</ProductName>
3673+ <Install>true</Install>
3674+ </BootstrapperPackage>
3675+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
3676+ <Visible>False</Visible>
3677+ <ProductName>.NET Framework 3.0 %28x86%29</ProductName>
3678+ <Install>false</Install>
3679+ </BootstrapperPackage>
3680+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
3681+ <Visible>False</Visible>
3682+ <ProductName>.NET Framework 3.5</ProductName>
3683+ <Install>false</Install>
3684+ </BootstrapperPackage>
3685+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
3686+ <Visible>False</Visible>
3687+ <ProductName>.NET Framework 3.5 SP1</ProductName>
3688+ <Install>false</Install>
3689+ </BootstrapperPackage>
3690+ </ItemGroup>
3691+ <ItemGroup>
3692+ <None Include="nunit.core.tests.build">
3693+ <SubType>Designer</SubType>
3694+ </None>
3695+ <EmbeddedResource Include="Results.xsd" />
3696+ </ItemGroup>
3697+ <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
3698+ <PropertyGroup>
3699+ <PreBuildEvent>
3700+ </PreBuildEvent>
3701+ <PostBuildEvent>
3702+ </PostBuildEvent>
3703+ </PropertyGroup>
3704 </Project>
3705\ No newline at end of file
3706
3707=== modified file 'src/NUnitFramework/tests/CollectionAssertTest.cs'
3708--- src/NUnitFramework/tests/CollectionAssertTest.cs 2011-11-02 22:40:46 +0000
3709+++ src/NUnitFramework/tests/CollectionAssertTest.cs 2012-10-03 23:32:21 +0000
3710@@ -6,7 +6,7 @@
3711
3712 using System;
3713 using System.Collections;
3714-#if NET_3_5 || NET_4_0
3715+#if NET_3_5 || NET_4_0 || NET_4_5
3716 using System.Linq;
3717 #endif
3718
3719
3720=== modified file 'src/NUnitFramework/tests/Constraints/CollectionConstraintTests.cs'
3721--- src/NUnitFramework/tests/Constraints/CollectionConstraintTests.cs 2011-11-02 22:40:46 +0000
3722+++ src/NUnitFramework/tests/Constraints/CollectionConstraintTests.cs 2012-10-03 23:32:21 +0000
3723@@ -307,7 +307,7 @@
3724 }
3725 }
3726
3727-#if CS_3_0 || CS_4_0
3728+#if CS_3_0 || CS_4_0 || CS_5_0
3729 [Test]
3730 public void UsesProvidedLambdaExpression()
3731 {
3732@@ -394,7 +394,7 @@
3733 Assert.That(new CollectionEquivalentConstraint(set1).IgnoreCase.Matches(set2));
3734 }
3735
3736-#if CS_3_0 || CS_4_0
3737+#if CS_3_0 || CS_4_0 || CS_5_0
3738 [Test]
3739 public void EquivalentHonorsUsing()
3740 {
3741@@ -632,7 +632,7 @@
3742 }
3743 }
3744
3745-#if CS_3_0 || CS_4_0
3746+#if CS_3_0 || CS_4_0 || CS_5_0
3747 [Test]
3748 public void UsesProvidedLambda()
3749 {
3750
3751=== modified file 'src/NUnitFramework/tests/Constraints/ComparisonConstraintTests.cs'
3752--- src/NUnitFramework/tests/Constraints/ComparisonConstraintTests.cs 2011-04-12 00:17:39 +0000
3753+++ src/NUnitFramework/tests/Constraints/ComparisonConstraintTests.cs 2012-10-03 23:32:21 +0000
3754@@ -75,7 +75,7 @@
3755 }
3756 }
3757
3758-#if CS_3_0 || CS_4_0
3759+#if CS_3_0 || CS_4_0 || CS_5_0
3760 [Test]
3761 public void UsesProvidedLambda()
3762 {
3763@@ -335,7 +335,7 @@
3764 }
3765 }
3766
3767-#if CS_3_0 || CS_4_0
3768+#if CS_3_0 || CS_4_0 || CS_5_0
3769 [Test]
3770 public void UsesProvidedLambda()
3771 {
3772
3773=== modified file 'src/NUnitFramework/tests/Constraints/EqualConstraintTests.cs'
3774--- src/NUnitFramework/tests/Constraints/EqualConstraintTests.cs 2011-12-15 23:02:34 +0000
3775+++ src/NUnitFramework/tests/Constraints/EqualConstraintTests.cs 2012-10-03 23:32:21 +0000
3776@@ -118,7 +118,7 @@
3777
3778 #region Dictionary Tests
3779 // TODO: Move these to a separate fixture
3780-#if CS_3_0 || CS_4_0
3781+#if CS_3_0 || CS_4_0 || CS_5_0
3782 [Test]
3783 public void CanMatchHashtables_SameOrder()
3784 {
3785@@ -418,7 +418,7 @@
3786 }
3787 }
3788
3789-#if CS_3_0 || CS_4_0
3790+#if CS_3_0 || CS_4_0 || CS_5_0
3791 [Test]
3792 public void UsesProvidedLambda_IntArgs()
3793 {
3794
3795=== modified file 'src/NUnitFramework/tests/Syntax/ArbitraryConstraintMatching.cs'
3796--- src/NUnitFramework/tests/Syntax/ArbitraryConstraintMatching.cs 2012-02-21 03:31:35 +0000
3797+++ src/NUnitFramework/tests/Syntax/ArbitraryConstraintMatching.cs 2012-10-03 23:32:21 +0000
3798@@ -50,7 +50,7 @@
3799 return (num & 1) == 0;
3800 }
3801
3802-#if CS_3_0 || CS_4_0
3803+#if CS_3_0 || CS_4_0 || CS_5_0
3804 [Test]
3805 public void CanMatchLambda()
3806 {
3807
3808=== modified file 'src/NUnitFramework/tests/Syntax/ThrowsTests.cs'
3809--- src/NUnitFramework/tests/Syntax/ThrowsTests.cs 2012-07-09 19:20:41 +0000
3810+++ src/NUnitFramework/tests/Syntax/ThrowsTests.cs 2012-10-03 23:32:21 +0000
3811@@ -160,7 +160,7 @@
3812
3813 // TODO: Move these to AssertThat tests
3814 #if CLR_2_0 || CLR_4_0
3815-#if CS_3_0 || CS_4_0
3816+#if CS_3_0 || CS_4_0 || CS_5_0
3817 [Test]
3818 public void DelegateThrowsException()
3819 {
3820
3821=== modified file 'src/ProjectEditor/tests/Presenters/AddConfigurationPresenterTests.cs'
3822--- src/ProjectEditor/tests/Presenters/AddConfigurationPresenterTests.cs 2011-03-30 20:37:44 +0000
3823+++ src/ProjectEditor/tests/Presenters/AddConfigurationPresenterTests.cs 2012-10-03 23:32:21 +0000
3824@@ -4,7 +4,7 @@
3825 // obtain a copy of the license at http://nunit.org
3826 // ****************************************************************
3827
3828-#if NET_3_5 || NET_4_0
3829+#if NET_3_5 || NET_4_0 || NET_4_5
3830 using System;
3831 using System.IO;
3832 using NSubstitute;
3833
3834=== modified file 'src/ProjectEditor/tests/Presenters/ConfigurationEditorTests.cs'
3835--- src/ProjectEditor/tests/Presenters/ConfigurationEditorTests.cs 2011-03-30 20:37:44 +0000
3836+++ src/ProjectEditor/tests/Presenters/ConfigurationEditorTests.cs 2012-10-03 23:32:21 +0000
3837@@ -4,7 +4,7 @@
3838 // obtain a copy of the license at http://nunit.org
3839 // ****************************************************************
3840
3841-#if NET_3_5 || NET_4_0
3842+#if NET_3_5 || NET_4_0 || NET_4_5
3843 using System;
3844 using System.Windows.Forms;
3845 using NUnit.Framework;
3846
3847=== modified file 'src/ProjectEditor/tests/Presenters/MainPresenterTests.cs'
3848--- src/ProjectEditor/tests/Presenters/MainPresenterTests.cs 2012-07-09 19:20:41 +0000
3849+++ src/ProjectEditor/tests/Presenters/MainPresenterTests.cs 2012-10-03 23:32:21 +0000
3850@@ -4,7 +4,7 @@
3851 // obtain a copy of the license at http://nunit.org
3852 // ****************************************************************
3853
3854-#if NET_3_5 || NET_4_0
3855+#if NET_3_5 || NET_4_0 || NET_4_5
3856 using System;
3857 using NSubstitute;
3858 using NUnit.Framework;
3859
3860=== modified file 'src/ProjectEditor/tests/Presenters/PropertyPresenterTests.cs'
3861--- src/ProjectEditor/tests/Presenters/PropertyPresenterTests.cs 2011-03-30 20:37:44 +0000
3862+++ src/ProjectEditor/tests/Presenters/PropertyPresenterTests.cs 2012-10-03 23:32:21 +0000
3863@@ -4,7 +4,7 @@
3864 // obtain a copy of the license at http://nunit.org
3865 // ****************************************************************
3866
3867-#if NET_3_5 || NET_4_0
3868+#if NET_3_5 || NET_4_0 || NET_4_5
3869 using System;
3870 using System.IO;
3871 using System.Reflection;
3872
3873=== modified file 'src/ProjectEditor/tests/Presenters/RenameConfigurationPresenterTests.cs'
3874--- src/ProjectEditor/tests/Presenters/RenameConfigurationPresenterTests.cs 2011-03-30 20:37:44 +0000
3875+++ src/ProjectEditor/tests/Presenters/RenameConfigurationPresenterTests.cs 2012-10-03 23:32:21 +0000
3876@@ -4,7 +4,7 @@
3877 // obtain a copy of the license at http://nunit.org
3878 // ****************************************************************
3879
3880-#if NET_3_5 || NET_4_0
3881+#if NET_3_5 || NET_4_0 || NET_4_5
3882 using System;
3883 using System.Collections.Generic;
3884 using NSubstitute;
3885
3886=== modified file 'src/ProjectEditor/tests/Presenters/SelectionStub.cs'
3887--- src/ProjectEditor/tests/Presenters/SelectionStub.cs 2011-03-30 20:37:44 +0000
3888+++ src/ProjectEditor/tests/Presenters/SelectionStub.cs 2012-10-03 23:32:21 +0000
3889@@ -4,7 +4,7 @@
3890 // obtain a copy of the license at http://nunit.org
3891 // ****************************************************************
3892
3893-#if NET_3_5 || NET_4_0
3894+#if NET_3_5 || NET_4_0 || NET_4_5
3895 using System;
3896 using System.Collections.Generic;
3897 using NUnit.ProjectEditor.ViewElements;
3898
3899=== modified file 'src/ProjectEditor/tests/Presenters/XmlPresenterTests.cs'
3900--- src/ProjectEditor/tests/Presenters/XmlPresenterTests.cs 2011-03-30 20:37:44 +0000
3901+++ src/ProjectEditor/tests/Presenters/XmlPresenterTests.cs 2012-10-03 23:32:21 +0000
3902@@ -4,7 +4,7 @@
3903 // obtain a copy of the license at http://nunit.org
3904 // ****************************************************************
3905
3906-#if NET_3_5 || NET_4_0
3907+#if NET_3_5 || NET_4_0 || NET_4_5
3908 using System;
3909 using System.Xml;
3910 using NUnit.Framework;
3911
3912=== added directory 'src/tests/test-assembly-net45'
3913=== added file 'src/tests/test-assembly-net45/AsyncDummyFixture.cs'
3914--- src/tests/test-assembly-net45/AsyncDummyFixture.cs 1970-01-01 00:00:00 +0000
3915+++ src/tests/test-assembly-net45/AsyncDummyFixture.cs 2012-10-03 23:32:21 +0000
3916@@ -0,0 +1,56 @@
3917+using System.Threading.Tasks;
3918+using NUnit.Framework;
3919+
3920+namespace test_assembly_net45
3921+{
3922+ public class AsyncDummyFixture
3923+ {
3924+ [Test]
3925+ public async void Void()
3926+ {
3927+
3928+ }
3929+
3930+ [Test]
3931+ public async Task PlainTask()
3932+ {
3933+ await Task.Yield();
3934+ }
3935+
3936+ [Test]
3937+ public async Task<int> TaskWithResult()
3938+ {
3939+ return await Task.FromResult(1);
3940+ }
3941+
3942+ [Test]
3943+ public Task<int> NonAsyncTaskWithResult()
3944+ {
3945+ return Task.FromResult(1);
3946+ }
3947+
3948+ [Test]
3949+ public Task NonAsyncTask()
3950+ {
3951+ return Task.Delay(0);
3952+ }
3953+
3954+ [TestCase(Result = 1)]
3955+ public async Task AsyncTaskTestCase()
3956+ {
3957+ await Task.Run(() => 1);
3958+ }
3959+
3960+ [TestCase(Result = 1)]
3961+ public async void AsyncVoidTestCase()
3962+ {
3963+ await Task.Run(() => 1);
3964+ }
3965+
3966+ [TestCase(Result = 1)]
3967+ public async Task<int> AsyncTaskWithResultTestCase()
3968+ {
3969+ return await Task.Run(() => 1);
3970+ }
3971+ }
3972+}
3973\ No newline at end of file
3974
3975=== added file 'src/tests/test-assembly-net45/AsyncRealFixture.cs'
3976--- src/tests/test-assembly-net45/AsyncRealFixture.cs 1970-01-01 00:00:00 +0000
3977+++ src/tests/test-assembly-net45/AsyncRealFixture.cs 2012-10-03 23:32:21 +0000
3978@@ -0,0 +1,289 @@
3979+using System;
3980+using System.Threading;
3981+using System.Threading.Tasks;
3982+using NUnit.Core;
3983+using NUnit.Framework;
3984+
3985+namespace test_assembly_net45
3986+{
3987+ public class AsyncRealFixture
3988+ {
3989+ [Test]
3990+ public async void AsyncVoidSuccess()
3991+ {
3992+ var result = await ReturnOne();
3993+
3994+ Assert.AreEqual(1, result);
3995+ }
3996+
3997+ [Test]
3998+ public async void AsyncVoidFailure()
3999+ {
4000+ var result = await ReturnOne();
4001+
4002+ Assert.AreEqual(2, result);
4003+ }
4004+
4005+ [Test]
4006+ public async void AsyncVoidError()
4007+ {
4008+ await ThrowException();
4009+
4010+ Assert.Fail("Should never get here");
4011+ }
4012+
4013+ [Test]
4014+ public async Task AsyncTaskSuccess()
4015+ {
4016+ var result = await ReturnOne();
4017+
4018+ Assert.AreEqual(1, result);
4019+ }
4020+
4021+ [Test]
4022+ public async Task AsyncTaskFailure()
4023+ {
4024+ var result = await ReturnOne();
4025+
4026+ Assert.AreEqual(2, result);
4027+ }
4028+
4029+ [Test]
4030+ public async Task AsyncTaskError()
4031+ {
4032+ await ThrowException();
4033+
4034+ Assert.Fail("Should never get here");
4035+ }
4036+
4037+ [Test]
4038+ public async Task<int> AsyncTaskResultSuccess()
4039+ {
4040+ var result = await ReturnOne();
4041+
4042+ Assert.AreEqual(1, result);
4043+
4044+ return result;
4045+ }
4046+
4047+ [Test]
4048+ public async Task<int> AsyncTaskResultFailure()
4049+ {
4050+ var result = await ReturnOne();
4051+
4052+ Assert.AreEqual(2, result);
4053+
4054+ return result;
4055+ }
4056+
4057+ [Test]
4058+ public async Task<int> AsyncTaskResultError()
4059+ {
4060+ await ThrowException();
4061+
4062+ Assert.Fail("Should never get here");
4063+
4064+ return 0;
4065+ }
4066+
4067+ [TestCase(Result = 1)]
4068+ public async Task<int> AsyncTaskResultCheckSuccess()
4069+ {
4070+ return await ReturnOne();
4071+ }
4072+
4073+ [TestCase(Result = 2)]
4074+ public async Task<int> AsyncTaskResultCheckFailure()
4075+ {
4076+ return await ReturnOne();
4077+ }
4078+
4079+ [TestCase(Result = 0)]
4080+ public async Task<int> AsyncTaskResultCheckError()
4081+ {
4082+ return await ThrowException();
4083+ }
4084+
4085+ [TestCase(Result = null)]
4086+ public async Task<object> AsyncTaskResultCheckSuccessReturningNull()
4087+ {
4088+ return await Task.Run(() => (object)null);
4089+ }
4090+
4091+ [Test]
4092+ [ExpectedException(typeof(InvalidOperationException))]
4093+ public async void AsyncVoidExpectedException()
4094+ {
4095+ await ThrowException();
4096+ }
4097+
4098+ [Test]
4099+ [ExpectedException(typeof(InvalidOperationException))]
4100+ public async Task AsyncTaskExpectedException()
4101+ {
4102+ await ThrowException();
4103+ }
4104+
4105+ [Test]
4106+ [ExpectedException(typeof(InvalidOperationException))]
4107+ public async Task<int> AsyncTaskResultExpectedException()
4108+ {
4109+ return await ThrowException();
4110+ }
4111+
4112+ [Test]
4113+ public async void AsyncVoidAssertSynchrnoizationContext()
4114+ {
4115+ Assert.That(SynchronizationContext.Current, Is.InstanceOf<AsyncSynchronizationContext>());
4116+ await Task.Yield();
4117+ }
4118+
4119+ [Test]
4120+ public async void NestedAsyncVoidSuccess()
4121+ {
4122+ var result = await Task.Run(async () => await ReturnOne());
4123+
4124+ Assert.AreEqual(1, result);
4125+ }
4126+
4127+ [Test]
4128+ public async void NestedAsyncVoidFailure()
4129+ {
4130+ var result = await Task.Run(async () => await ReturnOne());
4131+
4132+ Assert.AreEqual(2, result);
4133+ }
4134+
4135+ [Test]
4136+ public async void NestedAsyncVoidError()
4137+ {
4138+ await Task.Run(async () => await ThrowException());
4139+
4140+ Assert.Fail("Should not get here");
4141+ }
4142+
4143+ [Test]
4144+ public async Task NestedAsyncTaskSuccess()
4145+ {
4146+ var result = await Task.Run(async () => await ReturnOne());
4147+
4148+ Assert.AreEqual(1, result);
4149+ }
4150+
4151+ [Test]
4152+ public async Task NestedAsyncTaskFailure()
4153+ {
4154+ var result = await Task.Run(async () => await ReturnOne());
4155+
4156+ Assert.AreEqual(2, result);
4157+ }
4158+
4159+ [Test]
4160+ public async Task NestedAsyncTaskError()
4161+ {
4162+ await Task.Run(async () => await ThrowException());
4163+
4164+ Assert.Fail("Should never get here");
4165+ }
4166+
4167+ [Test]
4168+ public async Task<int> NestedAsyncTaskResultSuccess()
4169+ {
4170+ var result = await Task.Run(async () => await ReturnOne());
4171+
4172+ Assert.AreEqual(1, result);
4173+
4174+ return result;
4175+ }
4176+
4177+ [Test]
4178+ public async Task<int> NestedAsyncTaskResultFailure()
4179+ {
4180+ var result = await Task.Run(async () => await ReturnOne());
4181+
4182+ Assert.AreEqual(2, result);
4183+
4184+ return result;
4185+ }
4186+
4187+ [Test]
4188+ public async Task<int> NestedAsyncTaskResultError()
4189+ {
4190+ var result = await Task.Run(async () => await ThrowException());
4191+
4192+ Assert.Fail("Should never get here");
4193+
4194+ return result;
4195+ }
4196+
4197+ [Test]
4198+ public async void AsyncVoidMultipleSuccess()
4199+ {
4200+ var result = await ReturnOne();
4201+
4202+ Assert.AreEqual(await ReturnOne(), result);
4203+ }
4204+
4205+ [Test]
4206+ public async void AsyncVoidMultipleFailure()
4207+ {
4208+ var result = await ReturnOne();
4209+
4210+ Assert.AreEqual(await ReturnOne() + 1, result);
4211+ }
4212+
4213+ [Test]
4214+ public async void AsyncVoidMultipleError()
4215+ {
4216+ var result = await ReturnOne();
4217+ await ThrowException();
4218+
4219+ Assert.Fail("Should never get here");
4220+ }
4221+
4222+ [Test]
4223+ public async void AsyncTaskMultipleSuccess()
4224+ {
4225+ var result = await ReturnOne();
4226+
4227+ Assert.AreEqual(await ReturnOne(), result);
4228+ }
4229+
4230+ [Test]
4231+ public async void AsyncTaskMultipleFailure()
4232+ {
4233+ var result = await ReturnOne();
4234+
4235+ Assert.AreEqual(await ReturnOne() + 1, result);
4236+ }
4237+
4238+ [Test]
4239+ public async void AsyncTaskMultipleError()
4240+ {
4241+ var result = await ReturnOne();
4242+ await ThrowException();
4243+
4244+ Assert.Fail("Should never get here");
4245+ }
4246+
4247+ [TestCase(1, 2)]
4248+ public async void AsyncVoidTestCaseWithParametersSuccess(int a, int b)
4249+ {
4250+ Assert.AreEqual(await ReturnOne(), b - a);
4251+ }
4252+
4253+ private static Task<int> ReturnOne()
4254+ {
4255+ return Task.Run(() => 1);
4256+ }
4257+
4258+ private static Task<int> ThrowException()
4259+ {
4260+ return Task.Run(() =>
4261+ {
4262+ throw new InvalidOperationException();
4263+ return 1;
4264+ });
4265+ }
4266+ }
4267+}
4268\ No newline at end of file
4269
4270=== added directory 'src/tests/test-assembly-net45/Properties'
4271=== added file 'src/tests/test-assembly-net45/test-assembly-net45.build'
4272--- src/tests/test-assembly-net45/test-assembly-net45.build 1970-01-01 00:00:00 +0000
4273+++ src/tests/test-assembly-net45/test-assembly-net45.build 2012-10-03 23:32:21 +0000
4274@@ -0,0 +1,42 @@
4275+<?xml version="1.0"?>
4276+<project name="TestAssembly" default="build" basedir=".">
4277+
4278+ <patternset id="source-files">
4279+ <include name="AsyncDummyFixture.cs"/>
4280+ <include name="AsyncRealFixture.cs"/>
4281+ </patternset>
4282+
4283+ <target name="build">
4284+ <property name="previousFramework" value="${nant.settings.currentframework}"/>
4285+ <property name="nant.settings.currentframework" value="net-4.5"/>
4286+ <csc target="library"
4287+ output="${current.test.dir}/test-assembly-net45.dll"
4288+ debug="${build.debug}" define="${build.defines}">
4289+ <sources>
4290+ <patternset refid="source-files"/>
4291+ <include name="../../GeneratedAssemblyInfo.cs"/>
4292+ </sources>
4293+ <nowarn>
4294+ <warning number="618,672"/>
4295+ </nowarn>
4296+ <references>
4297+ <include name="${current.framework.dir}/nunit.framework.dll"/>
4298+ <include name="${current.framework.dir}/nunit.framework.extensions.dll"/>
4299+ <include name="${current.lib.dir}/nunit.core.interfaces.dll"/>
4300+ <include name="${current.lib.dir}/nunit.core.dll"/>
4301+ </references>
4302+ </csc>
4303+ <property name="nant.settings.currentframework" value="${previousFramework}"/>
4304+ </target>
4305+
4306+ <target name="package">
4307+ <copy todir="${package.src.dir}/tests/test-assembly-net45">
4308+ <fileset>
4309+ <patternset refid="source-files" />
4310+ <include name="test-assembly.csproj"/>
4311+ <include name="test-assembly.build"/>
4312+ </fileset>
4313+ </copy>
4314+ </target>
4315+
4316+</project>
4317\ No newline at end of file
4318
4319=== added file 'src/tests/test-assembly-net45/test-assembly-net45.csproj'
4320--- src/tests/test-assembly-net45/test-assembly-net45.csproj 1970-01-01 00:00:00 +0000
4321+++ src/tests/test-assembly-net45/test-assembly-net45.csproj 2012-10-03 23:32:21 +0000
4322@@ -0,0 +1,72 @@
4323+<?xml version="1.0" encoding="utf-8"?>
4324+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
4325+ <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
4326+ <PropertyGroup>
4327+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
4328+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
4329+ <ProjectGuid>{74CCEAEA-CDBF-4FE0-BF0D-914C3C44ECE9}</ProjectGuid>
4330+ <OutputType>Library</OutputType>
4331+ <AppDesignerFolder>Properties</AppDesignerFolder>
4332+ <RootNamespace>test_assembly_net45</RootNamespace>
4333+ <AssemblyName>test-assembly-net45</AssemblyName>
4334+ <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
4335+ <FileAlignment>512</FileAlignment>
4336+ </PropertyGroup>
4337+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
4338+ <DebugSymbols>true</DebugSymbols>
4339+ <DebugType>full</DebugType>
4340+ <Optimize>false</Optimize>
4341+ <OutputPath>bin\Debug\</OutputPath>
4342+ <DefineConstants>DEBUG;TRACE</DefineConstants>
4343+ <ErrorReport>prompt</ErrorReport>
4344+ <WarningLevel>4</WarningLevel>
4345+ </PropertyGroup>
4346+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
4347+ <DebugType>pdbonly</DebugType>
4348+ <Optimize>true</Optimize>
4349+ <OutputPath>bin\Release\</OutputPath>
4350+ <DefineConstants>TRACE</DefineConstants>
4351+ <ErrorReport>prompt</ErrorReport>
4352+ <WarningLevel>4</WarningLevel>
4353+ </PropertyGroup>
4354+ <ItemGroup>
4355+ <Reference Include="System" />
4356+ <Reference Include="System.Core" />
4357+ <Reference Include="System.Xml.Linq" />
4358+ <Reference Include="Microsoft.CSharp" />
4359+ <Reference Include="System.Xml" />
4360+ </ItemGroup>
4361+ <ItemGroup>
4362+ <Compile Include="..\..\CommonAssemblyInfo.cs">
4363+ <Link>CommonAssemblyInfo.cs</Link>
4364+ </Compile>
4365+ <Compile Include="AsyncDummyFixture.cs" />
4366+ <Compile Include="AsyncRealFixture.cs" />
4367+ </ItemGroup>
4368+ <ItemGroup>
4369+ <None Include="test-assembly-net45.build">
4370+ <SubType>Designer</SubType>
4371+ </None>
4372+ </ItemGroup>
4373+ <ItemGroup>
4374+ <ProjectReference Include="..\..\NUnitCore\core\nunit.core.dll.csproj">
4375+ <Project>{EBD43A7F-AFCA-4281-BB53-5CDD91F966A3}</Project>
4376+ <Name>nunit.core.dll</Name>
4377+ </ProjectReference>
4378+ <ProjectReference Include="..\..\NUnitFramework\framework\nunit.framework.dll.csproj">
4379+ <Project>{83DD7E12-A705-4DBA-9D71-09C8973D9382}</Project>
4380+ <Name>nunit.framework.dll</Name>
4381+ </ProjectReference>
4382+ </ItemGroup>
4383+ <ItemGroup>
4384+ <Folder Include="Properties\" />
4385+ </ItemGroup>
4386+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
4387+ <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
4388+ Other similar extension points exist, see Microsoft.Common.targets.
4389+ <Target Name="BeforeBuild">
4390+ </Target>
4391+ <Target Name="AfterBuild">
4392+ </Target>
4393+ -->
4394+</Project>
4395\ No newline at end of file
4396
4397=== modified file 'src/tests/test-assembly/DatapointFixture.cs'
4398--- src/tests/test-assembly/DatapointFixture.cs 2012-02-21 03:31:35 +0000
4399+++ src/tests/test-assembly/DatapointFixture.cs 2012-10-03 23:32:21 +0000
4400@@ -50,7 +50,7 @@
4401 public double[] values = new double[] { 0.0, 1.0, -1.0, double.MaxValue, double.PositiveInfinity };
4402 }
4403
4404-#if CS_3_0 || CS_4_0
4405+#if CS_3_0 || CS_4_0 || CS_5_0
4406 public class SquareRootTest_Field_IEnumerableOfDouble : SquareRootTest
4407 {
4408 [Datapoints]
4409
4410=== modified file 'tools/nant/bin/NAnt.exe.config'
4411--- tools/nant/bin/NAnt.exe.config 2012-09-25 20:55:15 +0000
4412+++ tools/nant/bin/NAnt.exe.config 2012-10-03 23:32:21 +0000
4413@@ -886,7 +886,341 @@
4414 </task>
4415 </tasks>
4416 </framework>
4417- <framework
4418+ <framework
4419+ name="net-4.5"
4420+ family="net"
4421+ version="4.5"
4422+ description="Microsoft .NET Framework 4.5"
4423+ sdkdirectory="${sdkInstallRoot}"
4424+ frameworkdirectory="${path::combine(installRoot, 'v4.0.30319')}"
4425+ frameworkassemblydirectory="${path::combine(installRoot, 'v4.0.30319')}"
4426+ clrversion="4.0.30319"
4427+ clrtype="Desktop"
4428+ vendor="Microsoft"
4429+ >
4430+ <runtime>
4431+ <probing-paths>
4432+ <directory name="lib/common/2.0" />
4433+ <directory name="lib/common/neutral" />
4434+ </probing-paths>
4435+ <modes>
4436+ <strict>
4437+ <environment>
4438+ <variable name="COMPLUS_VERSION" value="v4.0.30319" />
4439+ </environment>
4440+ </strict>
4441+ </modes>
4442+ </runtime>
4443+ <reference-assemblies basedir="${path::combine(installRoot, 'v4.0.30319')}">
4444+ <include name="Accessibility.dll" />
4445+ <include name="Microsoft.Build.Conversion.v4.0.dll" />
4446+ <include name="Microsoft.Build.dll" />
4447+ <include name="Microsoft.Build.Engine.dll" />
4448+ <include name="Microsoft.Build.Framework.dll" />
4449+ <include name="Microsoft.Build.Tasks.v4.0.dll" />
4450+ <include name="Microsoft.Build.Utilities.v4.0.dll" />
4451+ <include name="Microsoft.CSharp.dll" />
4452+ <include name="Microsoft.Data.Entity.Build.Tasks.dll" />
4453+ <include name="Microsoft.JScript.dll" />
4454+ <include name="Microsoft.Transactions.Bridge.dll" />
4455+ <include name="Microsoft.Transactions.Bridge.Dtc.dll" />
4456+ <include name="Microsoft.VisualBasic.Activities.Compiler.dll" />
4457+ <include name="Microsoft.VisualBasic.Compatibility.Data.dll" />
4458+ <include name="Microsoft.VisualBasic.Compatibility.dll" />
4459+ <include name="Microsoft.VisualBasic.dll" />
4460+ <include name="Microsoft.VisualC.dll" />
4461+ <include name="Microsoft.VisualC.STLCLR.dll" />
4462+ <include name="mscorlib.dll" />
4463+ <include name="System.Activities.Core.Presentation.dll" />
4464+ <include name="System.Activities.dll" />
4465+ <include name="System.Activities.DurableInstancing.dll" />
4466+ <include name="System.Activities.Presentation.dll" />
4467+ <include name="System.AddIn.Contract" />
4468+ <include name="System.AddIn.dll" />
4469+ <include name="System.ComponentModel.Composition.dll" />
4470+ <include name="System.ComponentModel.DataAnnotations.dll" />
4471+ <include name="System.Configuration.dll" />
4472+ <include name="System.Configuration.Install.dll" />
4473+ <include name="System.Core.dll" />
4474+ <include name="System.Data.DataSetExtensions.dll" />
4475+ <include name="System.Data.dll" />
4476+ <include name="System.Data.Entity.Design.dll" />
4477+ <include name="System.Data.Entity.dll" />
4478+ <include name="System.Data.Linq.dll" />
4479+ <include name="System.Data.OracleClient.dll" />
4480+ <include name="System.Data.Services.Client.dll" />
4481+ <include name="System.Data.Services.Design.dll" />
4482+ <include name="System.Data.Services.dll" />
4483+ <include name="System.Data.SqlXml.dll" />
4484+ <include name="System.Deployment.dll" />
4485+ <include name="System.Design.dll" />
4486+ <include name="System.Device.dll" />
4487+ <include name="System.DirectoryServices.dll" />
4488+ <include name="System.DirectoryServices.Protocols.dll" />
4489+ <include name="System.dll" />
4490+ <include name="System.Drawing.Design.dll" />
4491+ <include name="System.Drawing.dll" />
4492+ <include name="System.Dynamic.dll" />
4493+ <include name="System.EnterpriseServices.dll" />
4494+ <include name="System.EnterpriseServices.Thunk.dll" />
4495+ <include name="System.EnterpriseServices.Wrapper.dll" />
4496+ <include name="System.IdentityModel.dll" />
4497+ <include name="System.IdentityModel.Selectors.dll" />
4498+ <include name="System.IO.Log.dll" />
4499+ <include name="System.Management.dll" />
4500+ <include name="System.Management.Instrumentation.dll" />
4501+ <include name="System.Messaging.dll" />
4502+ <include name="System.Net.dll" />
4503+ <include name="System.Numerics.dll" />
4504+ <include name="System.Runtime.Caching.dll" />
4505+ <include name="System.Runtime.DurableInstancing.dll" />
4506+ <include name="System.Runtime.Remoting.dll" />
4507+ <include name="System.Runtime.Serialization.dll" />
4508+ <include name="System.Runtime.Serialization.Formatters.Soap.dll" />
4509+ <include name="System.Security.dll" />
4510+ <include name="System.ServiceModel.Activation.dll" />
4511+ <include name="System.ServiceModel.Activities.dll" />
4512+ <include name="System.ServiceModel.Channels.dll" />
4513+ <include name="System.ServiceModel.Discovery.dll" />
4514+ <include name="System.ServiceModel.dll" />
4515+ <include name="System.ServiceModel.Routing.dll" />
4516+ <include name="System.ServiceModel.ServiceMoniker40.dll" />
4517+ <include name="System.ServiceModel.WasHosting.dll" />
4518+ <include name="System.ServiceModel.Web.dll" />
4519+ <include name="System.ServiceProcess.dll" />
4520+ <include name="System.Transactions.dll" />
4521+ <include name="System.Web.Abstractions.dll" />
4522+ <include name="System.Web.ApplicationServices.dll" />
4523+ <include name="System.Web.DataVisualization.Design.dll" />
4524+ <include name="System.Web.DataVisualization.dll" />
4525+ <include name="System.Web.dll" />
4526+ <include name="System.Web.DynamicData.Design.dll" />
4527+ <include name="System.Web.DynamicData.dll" />
4528+ <include name="System.Web.Entity.Design.dll" />
4529+ <include name="System.Web.Entity.dll" />
4530+ <include name="System.Web.Extensions.Design.dll" />
4531+ <include name="System.Web.Extensions.dll" />
4532+ <include name="System.Web.Mobile.dll" />
4533+ <include name="System.Web.RegularExpressions.dll" />
4534+ <include name="System.Web.Routing.dll" />
4535+ <include name="System.Web.Services.dll" />
4536+ <include name="System.Windows.Forms.DataVisualization.Design.dll" />
4537+ <include name="System.Windows.Forms.DataVisualization.dll" />
4538+ <include name="System.Windows.Forms.dll" />
4539+ <include name="System.Workflow.Activities.dll" />
4540+ <include name="System.Workflow.ComponentModel.dll" />
4541+ <include name="System.Workflow.Runtime.dll" />
4542+ <include name="System.WorkflowServices.dll" />
4543+ <include name="System.Xaml.dll" />
4544+ <include name="System.Xaml.Hosting.dll" />
4545+ <include name="System.Xml.dll" />
4546+ <include name="System.Xml.Linq.dll" />
4547+ </reference-assemblies>
4548+ <!-- WPF Assemblies -->
4549+ <reference-assemblies basedir="${path::combine(installRoot, 'v4.0.30319')}/WPF">
4550+ <include name="NaturalLanguage6.dll" />
4551+ <include name="NlsData0009.dll" />
4552+ <include name="NlsLexicons0009.dll" />
4553+ <include name="PenIMC.dll" />
4554+ <include name="PresentationCore.dll" />
4555+ <include name="PresentationFramework.Aero.dll" />
4556+ <include name="PresentationFramework.Classic.dll" />
4557+ <include name="PresentationFramework.dll" />
4558+ <include name="PresentationFramework.Luna.dll" />
4559+ <include name="PresentationFramework.Royale.dll" />
4560+ <include name="PresentationHost_v0400.dll" />
4561+ <include name="PresentationNative_v0400.dll" />
4562+ <include name="PresentationUI.dll" />
4563+ <include name="ReachFramework.dll" />
4564+ <include name="System.Printing.dll" />
4565+ <include name="System.Speech.dll" />
4566+ <include name="System.Windows.Input.Manipulations.dll" />
4567+ <include name="System.Windows.Presentation.dll" />
4568+ <include name="UIAutomationClient.dll" />
4569+ <include name="UIAutomationClientsideProviders.dll" />
4570+ <include name="UIAutomationProvider.dll" />
4571+ <include name="UIAutomationTypes.dll" />
4572+ <include name="WindowsBase.dll" />
4573+ <include name="WindowsFormsIntegration.dll" />
4574+ <include name="wpfgfx_v0400.dll" />
4575+ <include name="wpftxt_v0400.dll" />
4576+ </reference-assemblies>
4577+ <reference-assemblies basedir="${environment::get-folder-path('ProgramFiles')}/Reference Assemblies/Microsoft/Framework/.NETFramework/v4.5">
4578+ <include name="Microsoft.Build.Conversion.v4.0.dll" />
4579+ <include name="Microsoft.Build.dll" />
4580+ <include name="Microsoft.Build.Engine.dll" />
4581+ <include name="Microsoft.Build.Framework.dll" />
4582+ <include name="Microsoft.Build.Tasks.v4.0.dll" />
4583+ <include name="Microsoft.Build.Utilities.v4.0.dll" />
4584+ <include name="Microsoft.CSharp.dll" />
4585+ <include name="Microsoft.JScript.dll" />
4586+ <include name="Microsoft.VisualBasic.Compatibility.Data.dll" />
4587+ <include name="Microsoft.VisualBasic.Comptatibility.dll" />
4588+ <include name="Microsoft.VisualBasic.dll" />
4589+ <include name="Microsoft.VisualC.dll" />
4590+ <include name="Microsoft.VisualC.STLCLR.dll" />
4591+ <include name="mscorlib.dll" />
4592+ <include name="PresentationBuildTasks.dll" />
4593+ <include name="PresentationCore.dll" />
4594+ <include name="WindowsBase.dll" />
4595+ <include name="PresentationFramework.dll" />
4596+ <include name="PresentationFramework.Aero.dll" />
4597+ <include name="PresentationFramework.Classic.dll" />
4598+ <include name="PresentationFramework.Luna.dll" />
4599+ <include name="PresentationFramework.Royale.dll" />
4600+ <include name="ReachFramework.dll" />
4601+ <include name="System.Activities.Core.Presentation.dll" />
4602+ <include name="System.Activities.dll" />
4603+ <include name="System.Activities.DurableInstancing.dll" />
4604+ <include name="System.Activities.Presentation.dll" />
4605+ <include name="System.AddIn.Contract.dll" />
4606+ <include name="System.AddIn.dll" />
4607+ <include name="System.ComponentModel.Composition.dll" />
4608+ <include name="System.ComponentModel.DataAnnotations.dll" />
4609+ <include name="System.Configuration.dll" />
4610+ <include name="System.Core.dll" />
4611+ <include name="System.Data.DataSetExtension.dll" />
4612+ <include name="System.Data.dll" />
4613+ <include name="System.Data.Entity.Design.dll" />
4614+ <include name="System.Data.Entity.dll" />
4615+ <include name="System.Data.Linq.dll" />
4616+ <include name="System.Data.OracleClient.dll" />
4617+ <include name="System.Data.Services.Client.dll" />
4618+ <include name="System.Data.Services.Design.dll" />
4619+ <include name="System.Data.Services.dll" />
4620+ <include name="System.Data.SqlXml.dll" />
4621+ <include name="System.Deployment.dll" />
4622+ <include name="System.Design.dll" />
4623+ <include name="System.Device.dll" />
4624+ <include name="System.DirectoryServices.AccountManagement.dll" />
4625+ <include name="System.DirectoryServices.dll" />
4626+ <include name="System.DirectoryServices.Protocols.dll" />
4627+ <include name="System.dll" />
4628+ <include name="System.Drawing.Design.dll" />
4629+ <include name="System.Drawing.dll" />
4630+ <include name="System.EnterpriseServices.dll" />
4631+ <include name="System.EnterpriseServices.Thunk.dll" />
4632+ <include name="System.EnterpriseServices.Wrapper.dll" />
4633+ <include name="System.IdentityModel.dll" />
4634+ <include name="System.IdentityModel.Selectors.dll" />
4635+ <include name="System.IO.Log.dll" />
4636+ <include name="System.Management.dll" />
4637+ <include name="System.Management.Instrumentation.dll" />
4638+ <include name="System.Messaging.dll" />
4639+ <include name="System.Net.dll" />
4640+ <include name="System.Numerics.dll" />
4641+ <include name="System.Printing.dll" />
4642+ <include name="System.Runtime.Caching.dll" />
4643+ <include name="System.Runtime.DurableInstancing.dll" />
4644+ <include name="System.Runtime.Remoting.dll" />
4645+ <include name="System.Runtime.Serialization.dll" />
4646+ <include name="System.Runtime.Serialization.Formatters.Soap.dll" />
4647+ <include name="System.Security.dll" />
4648+ <include name="System.ServiceModel.Activation.dll" />
4649+ <include name="System.ServiceModel.Activities.dll" />
4650+ <include name="System.ServiceModel.Channels.dll" />
4651+ <include name="System.ServiceModel.Discovery.dll" />
4652+ <include name="System.ServiceModel.dll" />
4653+ <include name="System.ServiceModel.Routing.dll" />
4654+ <include name="System.ServiceModel.Web.dll" />
4655+ <include name="System.ServiceProcess.dll" />
4656+ <include name="System.Speech.dll" />
4657+ <include name="System.Transactions.dll" />
4658+ <include name="System.Web.Abstractions.dll" />
4659+ <include name="System.Web.ApplicationServices.dll" />
4660+ <include name="System.Web.DataVisualization.Design.dll" />
4661+ <include name="System.Web.DataVisualization.dll" />
4662+ <include name="System.Web.dll" />
4663+ <include name="System.Web.DynamicData.Design.dll" />
4664+ <include name="System.Web.DynamicData.dll" />
4665+ <include name="System.Web.Entity.Design.dll" />
4666+ <include name="System.Web.Entity.dll" />
4667+ <include name="System.Web.Extensions.Design.dll" />
4668+ <include name="System.Web.Extensions.dll" />
4669+ <include name="System.Web.Mobile.dll" />
4670+ <include name="System.Web.RegularExpressions.dll" />
4671+ <include name="System.Web.Routing.dll" />
4672+ <include name="System.Web.Services.dll" />
4673+ <include name="System.Windows.Forms.DataVisualization.Design.dll" />
4674+ <include name="System.Windows.Forms.DataVisualization.dll" />
4675+ <include name="System.Windows.Forms.dll" />
4676+ <include name="System.Windows.Input.Manipulations.dll" />
4677+ <include name="System.Windows.Presentation.dll" />
4678+ <include name="System.Workflow.Activities.dll" />
4679+ <include name="System.Workflow.ComponentModel.dll" />
4680+ <include name="System.Workflow.Runtime.dll" />
4681+ <include name="System.WorkflowServices.dll" />
4682+ <include name="System.Xaml.dll" />
4683+ <include name="System.Xml.dll" />
4684+ <include name="System.Xml.Linq.dll" />
4685+ </reference-assemblies>
4686+ <task-assemblies>
4687+ <!-- include MS.NET version-neutral assemblies -->
4688+ <include name="extensions/net/neutral/**/*.dll" />
4689+ <!-- include MS.NET 4.0 specific assemblies -->
4690+ <include name="extensions/net/4.0/**/*.dll" />
4691+ <!-- include MS.NET specific task assembly -->
4692+ <include name="NAnt.MSNetTasks.dll" />
4693+ <!-- include MS.NET specific test assembly -->
4694+ <include name="NAnt.MSNet.Tests.dll" />
4695+ <!-- include .NET 4.0 specific assemblies -->
4696+ <include name="extensions/common/4.0/**/*.dll" />
4697+ </task-assemblies>
4698+ <tool-paths>
4699+ <directory name="${sdkInstallRoot}"
4700+ if="${property::exists('sdkInstallRoot')}" />
4701+ <directory name="${path::combine(installRoot, 'v4.0.30319')}" />
4702+ </tool-paths>
4703+ <project>
4704+ <readregistry
4705+ property="installRoot"
4706+ key="SOFTWARE\Microsoft\.NETFramework\InstallRoot"
4707+ hive="LocalMachine" />
4708+ <locatesdk property="sdkInstallRoot" minwinsdkver="v7.0A" minnetfxver="4.0" maxnetfxver="4.0.99999" failonerror="false" />
4709+ </project>
4710+ <tasks>
4711+ <task name="csc">
4712+ <attribute name="supportsnowarnlist">true</attribute>
4713+ <attribute name="supportswarnaserrorlist">true</attribute>
4714+ <attribute name="supportskeycontainer">true</attribute>
4715+ <attribute name="supportskeyfile">true</attribute>
4716+ <attribute name="supportsdelaysign">true</attribute>
4717+ <attribute name="supportsplatform">true</attribute>
4718+ <attribute name="supportslangversion">true</attribute>
4719+ </task>
4720+ <task name="vbc">
4721+ <attribute name="supportsdocgeneration">true</attribute>
4722+ <attribute name="supportsnostdlib">true</attribute>
4723+ <attribute name="supportsnowarnlist">true</attribute>
4724+ <attribute name="supportskeycontainer">true</attribute>
4725+ <attribute name="supportskeyfile">true</attribute>
4726+ <attribute name="supportsdelaysign">true</attribute>
4727+ <attribute name="supportsplatform">true</attribute>
4728+ <attribute name="supportswarnaserrorlist">true</attribute>
4729+ </task>
4730+ <task name="jsc">
4731+ <attribute name="supportsplatform">true</attribute>
4732+ </task>
4733+ <task name="vjc">
4734+ <attribute name="supportsnowarnlist">true</attribute>
4735+ <attribute name="supportskeycontainer">true</attribute>
4736+ <attribute name="supportskeyfile">true</attribute>
4737+ <attribute name="supportsdelaysign">true</attribute>
4738+ </task>
4739+ <task name="resgen">
4740+ <attribute name="supportsassemblyreferences">true</attribute>
4741+ <attribute name="supportsexternalfilereferences">true</attribute>
4742+ </task>
4743+ <task name="delay-sign">
4744+ <attribute name="exename">sn</attribute>
4745+ </task>
4746+ <task name="license">
4747+ <attribute name="exename">lc</attribute>
4748+ <attribute name="supportsassemblyreferences">true</attribute>
4749+ </task>
4750+ </tasks>
4751+ </framework>
4752+ <framework
4753 name="netcf-1.0"
4754 family="netcf"
4755 version="1.0"
4756@@ -2921,9 +3255,11 @@
4757 <NetFx40_LegacySecurityPolicy enabled="true"/>
4758 </runtime>
4759 <startup>
4760- <!-- .NET Framework 4.0 -->
4761- <supportedRuntime version="v4.0.30319" />
4762- <!-- .NET Framework 2.0 -->
4763- <supportedRuntime version="v2.0.50727" />
4764- </startup>
4765+ <!-- .NET Framework 4.5 -->
4766+ <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
4767+ <!-- .NET Framework 4.0 -->
4768+ <supportedRuntime version="v4.0.30319" />
4769+ <!-- .NET Framework 2.0 -->
4770+ <supportedRuntime version="v2.0.50727" />
4771+ </startup>
4772 </configuration>

Subscribers

People subscribed via source and target branches

to status/vote changes: