Merge lp:~cvetomir-todorov/nunitv2/bug603088 into lp:nunitv2

Proposed by Cvetomir Todorov
Status: Merged
Merge reported by: Charlie Poole
Merged at revision: not available
Proposed branch: lp:~cvetomir-todorov/nunitv2/bug603088
Merge into: lp:nunitv2
Diff against target: 1342 lines (+727/-461)
10 files modified
src/ClientUtilities/tests/FileWatcherTest.cs (+3/-2)
src/ClientUtilities/tests/MockAssemblyWatcher.cs (+0/-3)
src/ClientUtilities/tests/TestLoaderWatcherTests.cs (+139/-0)
src/ClientUtilities/tests/nunit.util.tests.build (+1/-0)
src/ClientUtilities/tests/nunit.util.tests.csproj (+213/-213)
src/ClientUtilities/util/AssemblyWatcher.cs (+104/-43)
src/ClientUtilities/util/IAssemblyWatcher.cs (+54/-0)
src/ClientUtilities/util/TestLoader.cs (+31/-20)
src/ClientUtilities/util/nunit.util.build (+1/-0)
src/ClientUtilities/util/nunit.util.dll.csproj (+181/-180)
To merge this branch: bzr merge lp:~cvetomir-todorov/nunitv2/bug603088
Reviewer Review Type Date Requested Status
Charlie Poole Approve
Review via email: mp+35021@code.launchpad.net

Description of the change

Fixing Bug #603088.

To post a comment you must log in.
Revision history for this message
Charlie Poole (charlie.poole) wrote :

This looks good. I made a few changes so it would compile under .NET 1.1 and committed it to trunk. If you like, you can pull the changes and refactor further since I only did very mechanical changes.

Changes:
* Use an IList under earlier versions of .NET - you could change this to an array and avoid the #if but that depends whether the interface is convenient to use with an array.
* Eliminate the #pragmas, which cause an error under 1.1. Note that an #if won't work here. You could avoid the error by adding a public method of the class that fires events.

In the short term, it will help if you can test with .NET 1.1 your self. A better solution would be to accelerate getting rid of 1.1, which we can discuss separately.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/ClientUtilities/tests/FileWatcherTest.cs'
2--- src/ClientUtilities/tests/FileWatcherTest.cs 2009-04-18 02:24:12 +0000
3+++ src/ClientUtilities/tests/FileWatcherTest.cs 2010-09-09 18:41:13 +0000
4@@ -31,8 +31,9 @@
5 writer.Close();
6
7 handler = new CounterEventHandler();
8- watcher = new AssemblyWatcher(watcherDelayMs, fileName);
9- watcher.AssemblyChangedEvent += new AssemblyWatcher.AssemblyChangedHandler( handler.OnChanged );
10+ watcher = new AssemblyWatcher();
11+ watcher.Setup(watcherDelayMs, fileName);
12+ watcher.AssemblyChanged += new AssemblyChangedHandler( handler.OnChanged );
13 watcher.Start();
14 }
15
16
17=== modified file 'src/ClientUtilities/tests/MockAssemblyWatcher.cs'
18--- src/ClientUtilities/tests/MockAssemblyWatcher.cs 2009-04-18 02:24:12 +0000
19+++ src/ClientUtilities/tests/MockAssemblyWatcher.cs 2010-09-09 18:41:13 +0000
20@@ -21,9 +21,6 @@
21 private DateTime triggerTime;
22 private DateTime publishTime;
23
24- public MockAssemblyWatcher( int delay, string assemblyFileName )
25- : base( delay, assemblyFileName ) { }
26-
27 public bool EventPublished
28 {
29 get { return eventPublished; }
30
31=== added file 'src/ClientUtilities/tests/TestLoaderWatcherTests.cs'
32--- src/ClientUtilities/tests/TestLoaderWatcherTests.cs 1970-01-01 00:00:00 +0000
33+++ src/ClientUtilities/tests/TestLoaderWatcherTests.cs 2010-09-09 18:41:13 +0000
34@@ -0,0 +1,139 @@
35+// ****************************************************************
36+// This is free software licensed under the NUnit license. You
37+// may obtain a copy of the license as well as information regarding
38+// copyright ownership at http://nunit.org.
39+// ****************************************************************
40+
41+using System;
42+using System.Collections.Generic;
43+using NUnit.Framework;
44+using NUnit.Tests.Assemblies;
45+
46+namespace NUnit.Util.Tests
47+{
48+ [TestFixture]
49+ public class TestLoaderWatcherTests
50+ {
51+ private readonly string assembly = MockAssembly.AssemblyPath;
52+ private MockAssemblyWatcher2 mockWatcher;
53+ private ITestLoader testLoader;
54+ private const string ReloadOnChangeSetting = "Options.TestLoader.ReloadOnChange";
55+
56+ [SetUp]
57+ public void PreprareTestLoader()
58+ {
59+ // arrange
60+ mockWatcher = new MockAssemblyWatcher2();
61+ testLoader = new TestLoader(mockWatcher);
62+ testLoader.LoadProject(assembly);
63+ }
64+
65+ [TearDown]
66+ public void CleanUpSettings()
67+ {
68+ Services.UserSettings.RemoveSetting(ReloadOnChangeSetting);
69+ }
70+
71+ private void AssertWatcherIsPrepared()
72+ {
73+ Assert.IsTrue(mockWatcher.IsWatching);
74+ CollectionAssert.AreEquivalent(new string[] { assembly }, mockWatcher.AssembliesToWatch);
75+ }
76+
77+ [Test]
78+ public void LoadShouldStartWatcher()
79+ {
80+ // act
81+ testLoader.LoadTest();
82+
83+ // assert
84+ AssertWatcherIsPrepared();
85+ }
86+
87+ [Test]
88+ public void ReloadShouldStartWatcher()
89+ {
90+ // arrange
91+ testLoader.LoadTest();
92+ mockWatcher.AssembliesToWatch = null;
93+ mockWatcher.IsWatching = false;
94+
95+ // act
96+ testLoader.ReloadTest();
97+
98+ // assert
99+ AssertWatcherIsPrepared();
100+ }
101+
102+ [Test]
103+ public void UnloadShouldStopWatcherAndFreeResources()
104+ {
105+ // act
106+ testLoader.LoadTest();
107+ testLoader.UnloadTest();
108+
109+ // assert
110+ Assert.IsFalse(mockWatcher.IsWatching);
111+ Assert.IsTrue(mockWatcher.AreResourcesFreed);
112+ }
113+
114+ [Test]
115+ public void LoadShouldStartWatcherDepedningOnSettings()
116+ {
117+ // arrange
118+ Services.UserSettings.SaveSetting(ReloadOnChangeSetting, false);
119+ testLoader.LoadTest();
120+
121+ // assert
122+ Assert.IsFalse(mockWatcher.IsWatching);
123+ }
124+
125+ [Test]
126+ public void ReloadShouldStartWatcherDepedningOnSettings()
127+ {
128+ // arrange
129+ Services.UserSettings.SaveSetting(ReloadOnChangeSetting, false);
130+ testLoader.LoadTest();
131+ testLoader.ReloadTest();
132+
133+ // assert
134+ Assert.IsFalse(mockWatcher.IsWatching);
135+ }
136+ }
137+
138+ internal class MockAssemblyWatcher2 : IAssemblyWatcher
139+ {
140+ public bool IsWatching;
141+ public IList<string> AssembliesToWatch;
142+ public bool AreResourcesFreed;
143+
144+ public void Stop()
145+ {
146+ IsWatching = false;
147+ }
148+
149+ public void Start()
150+ {
151+ IsWatching = true;
152+ }
153+
154+ public void Setup(int delayInMs, IList<string> assemblies)
155+ {
156+ AssembliesToWatch = assemblies;
157+ }
158+
159+ public void Setup(int delayInMs, string assemblyFileName)
160+ {
161+ Setup(delayInMs, new string[] {assemblyFileName});
162+ }
163+
164+ public void FreeResources()
165+ {
166+ AreResourcesFreed = true;
167+ }
168+
169+#pragma warning disable 67
170+ public event AssemblyChangedHandler AssemblyChanged;
171+#pragma warning restore 67
172+ }
173+}
174\ No newline at end of file
175
176=== modified file 'src/ClientUtilities/tests/nunit.util.tests.build'
177--- src/ClientUtilities/tests/nunit.util.tests.build 2010-04-19 03:57:21 +0000
178+++ src/ClientUtilities/tests/nunit.util.tests.build 2010-09-09 18:41:13 +0000
179@@ -32,6 +32,7 @@
180 <include name="TestDomainFixture.cs"/>
181 <include name="TestDomainTests_Multiple.cs"/>
182 <include name="TestEventCatcher.cs"/>
183+ <include name="TestLoaderWatcherTests.cs"/>
184 <include name="TestLoaderAssemblyTests.cs"/>
185 <include name="TestRunnerFactoryTests.cs"/>
186 <include name="TestServerTests.cs"/>
187
188=== modified file 'src/ClientUtilities/tests/nunit.util.tests.csproj'
189--- src/ClientUtilities/tests/nunit.util.tests.csproj 2010-08-06 18:37:35 +0000
190+++ src/ClientUtilities/tests/nunit.util.tests.csproj 2010-09-09 18:41:13 +0000
191@@ -1,214 +1,214 @@
192-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
193- <PropertyGroup>
194- <ProjectType>Local</ProjectType>
195- <ProductVersion>9.0.30729</ProductVersion>
196- <SchemaVersion>2.0</SchemaVersion>
197- <ProjectGuid>{74EF7165-117E-48ED-98EA-068EAE438E53}</ProjectGuid>
198- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
199- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
200- <ApplicationIcon>
201- </ApplicationIcon>
202- <AssemblyKeyContainerName>
203- </AssemblyKeyContainerName>
204- <AssemblyName>nunit.util.tests</AssemblyName>
205- <AssemblyOriginatorKeyFile>
206- </AssemblyOriginatorKeyFile>
207- <DefaultClientScript>JScript</DefaultClientScript>
208- <DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout>
209- <DefaultTargetSchema>IE50</DefaultTargetSchema>
210- <DelaySign>false</DelaySign>
211- <OutputType>Library</OutputType>
212- <RootNamespace>NUnit.Util.Tests</RootNamespace>
213- <RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
214- <StartupObject>
215- </StartupObject>
216- <FileUpgradeFlags>
217- </FileUpgradeFlags>
218- <UpgradeBackupLocation>
219- </UpgradeBackupLocation>
220- <OldToolsVersion>2.0</OldToolsVersion>
221- </PropertyGroup>
222- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
223- <OutputPath>..\..\bin\Debug\tests\</OutputPath>
224- <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
225- <BaseAddress>285212672</BaseAddress>
226- <CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
227- <ConfigurationOverrideFile>
228- </ConfigurationOverrideFile>
229- <DefineConstants>DEBUG;TRACE</DefineConstants>
230- <DocumentationFile>
231- </DocumentationFile>
232- <DebugSymbols>true</DebugSymbols>
233- <FileAlignment>4096</FileAlignment>
234- <NoStdLib>false</NoStdLib>
235- <NoWarn>
236- </NoWarn>
237- <Optimize>false</Optimize>
238- <RegisterForComInterop>false</RegisterForComInterop>
239- <RemoveIntegerChecks>false</RemoveIntegerChecks>
240- <TreatWarningsAsErrors>false</TreatWarningsAsErrors>
241- <WarningLevel>4</WarningLevel>
242- <DebugType>full</DebugType>
243- <ErrorReport>prompt</ErrorReport>
244- </PropertyGroup>
245- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
246- <OutputPath>..\..\bin\Release\tests\</OutputPath>
247- <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
248- <BaseAddress>285212672</BaseAddress>
249- <CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
250- <ConfigurationOverrideFile>
251- </ConfigurationOverrideFile>
252- <DefineConstants>TRACE</DefineConstants>
253- <DocumentationFile>
254- </DocumentationFile>
255- <DebugSymbols>false</DebugSymbols>
256- <FileAlignment>4096</FileAlignment>
257- <NoStdLib>false</NoStdLib>
258- <NoWarn>
259- </NoWarn>
260- <Optimize>true</Optimize>
261- <RegisterForComInterop>false</RegisterForComInterop>
262- <RemoveIntegerChecks>false</RemoveIntegerChecks>
263- <TreatWarningsAsErrors>false</TreatWarningsAsErrors>
264- <WarningLevel>4</WarningLevel>
265- <DebugType>none</DebugType>
266- <ErrorReport>prompt</ErrorReport>
267- </PropertyGroup>
268- <ItemGroup>
269- <Reference Include="System">
270- <Name>System</Name>
271- </Reference>
272- <Reference Include="System.Data">
273- <Name>System.Data</Name>
274- </Reference>
275- <Reference Include="System.Drawing">
276- <Name>System.Drawing</Name>
277- </Reference>
278- <Reference Include="System.Runtime.Remoting">
279- <Name>System.Runtime.Remoting</Name>
280- </Reference>
281- <Reference Include="System.Xml">
282- <Name>System.XML</Name>
283- </Reference>
284- <ProjectReference Include="..\..\NUnitCore\core\nunit.core.dll.csproj">
285- <Name>nunit.core.dll</Name>
286- <Project>{EBD43A7F-AFCA-4281-BB53-5CDD91F966A3}</Project>
287- <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
288- <Private>False</Private>
289- </ProjectReference>
290- <ProjectReference Include="..\..\NUnitCore\interfaces\nunit.core.interfaces.dll.csproj">
291- <Name>nunit.core.interfaces.dll</Name>
292- <Project>{435428F8-5995-4CE4-8022-93D595A8CC0F}</Project>
293- <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
294- <Private>False</Private>
295- </ProjectReference>
296- <ProjectReference Include="..\..\NUnitCore\tests\nunit.core.tests.csproj">
297- <Name>nunit.core.tests</Name>
298- <Project>{DD758D21-E5D5-4D40-9450-5F65A32F359C}</Project>
299- <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
300- <Private>False</Private>
301- </ProjectReference>
302- <ProjectReference Include="..\..\NUnitFramework\framework\nunit.framework.dll.csproj">
303- <Name>nunit.framework.dll</Name>
304- <Project>{83DD7E12-A705-4DBA-9D71-09C8973D9382}</Project>
305- <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
306- <Private>True</Private>
307- </ProjectReference>
308- <ProjectReference Include="..\..\tests\mock-assembly\mock-assembly.csproj">
309- <Name>mock-assembly</Name>
310- <Project>{2E368281-3BA8-4050-B05E-0E0E43F8F446}</Project>
311- <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
312- <Private>False</Private>
313- </ProjectReference>
314- <ProjectReference Include="..\..\tests\nonamespace-assembly\nonamespace-assembly.csproj">
315- <Name>nonamespace-assembly</Name>
316- <Project>{5110F0D2-8E50-46F8-9E17-7C8EBFECCA9D}</Project>
317- <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
318- <Private>False</Private>
319- </ProjectReference>
320- <ProjectReference Include="..\..\tests\test-utilities\test-utilities.csproj">
321- <Name>test-utilities</Name>
322- <Project>{3E63AD0F-24D4-46BE-BEE4-5A3299847D86}</Project>
323- <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
324- </ProjectReference>
325- <ProjectReference Include="..\util\nunit.util.dll.csproj">
326- <Name>nunit.util.dll</Name>
327- <Project>{61CE9CE5-943E-44D4-A381-814DC1406767}</Project>
328- <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
329- <Private>False</Private>
330- </ProjectReference>
331- </ItemGroup>
332- <ItemGroup>
333- <EmbeddedResource Include="resources\ClassLibrary1.csproj" />
334- <EmbeddedResource Include="resources\csharp-sample.csproj" />
335- <EmbeddedResource Include="resources\csharp-sample_VS2005.csproj" />
336- <EmbeddedResource Include="resources\csharp-sample_VS2005_noplatform.csproj" />
337- <EmbeddedResource Include="resources\HebrewFileProblem.csproj" />
338- <EmbeddedResource Include="resources\jsharp.vjsproj" />
339- <EmbeddedResource Include="resources\jsharp_VS2005.vjsproj" />
340- <EmbeddedResource Include="resources\MultiplePlatformProject.csproj" />
341- <EmbeddedResource Include="resources\samples.sln" />
342- <EmbeddedResource Include="resources\samples_VS2005.sln" />
343- <EmbeddedResource Include="resources\Solution1.sln" />
344- <EmbeddedResource Include="resources\vb-sample.vbproj" />
345- <EmbeddedResource Include="resources\vb-sample_VS2005.vbproj" />
346- <EmbeddedResource Include="resources\WebApplication1.sln" />
347- <EmbeddedResource Include="resources\XNAWindowsProject.csproj" />
348- </ItemGroup>
349- <ItemGroup>
350- <EmbeddedResource Include="resources\cpp-default-library_VS2005.vcproj" />
351- <EmbeddedResource Include="resources\cpp-sample.vcproj" />
352- <EmbeddedResource Include="resources\cpp-sample_VS2005.vcproj" />
353- <EmbeddedResource Include="resources\CPPLibrary.vcproj" />
354- <EmbeddedResource Include="resources\MakeFileProject.vcproj" />
355- <EmbeddedResource Include="resources\Unmanaged.vcproj" />
356- </ItemGroup>
357- <ItemGroup>
358- <Compile Include="..\..\CommonAssemblyInfo.cs">
359- <Link>CommonAssemblyInfo.cs</Link>
360- </Compile>
361- <Compile Include="AssemblyListTests.cs" />
362- <Compile Include="CategoryManagerTest.cs" />
363- <Compile Include="CategoryParseTests.cs" />
364- <Compile Include="DomainManagerTests.cs" />
365- <Compile Include="EventDispatcherTests.cs" />
366- <Compile Include="FileWatcherTest.cs" />
367- <Compile Include="MemorySettingsStorageTests.cs" />
368- <Compile Include="MockAssemblyWatcher.cs" />
369- <Compile Include="NUnitProjectLoad.cs" />
370- <Compile Include="NUnitProjectSave.cs" />
371- <Compile Include="NUnitProjectTests.cs" />
372- <Compile Include="NUnitProjectXml.cs" />
373- <Compile Include="NUnitRegistryTests.cs" />
374- <Compile Include="PathUtilTests.cs" />
375- <Compile Include="ProcessRunnerTests.cs" />
376- <Compile Include="ProjectConfigTests.cs" />
377- <Compile Include="RecentFileEntryTests.cs" />
378- <Compile Include="RecentFilesTests.cs" />
379- <Compile Include="RegistrySettingsStorageTests.cs" />
380- <Compile Include="RemoteTestResultTest.cs" />
381- <Compile Include="RuntimeFrameworkSelectorTests.cs" />
382- <Compile Include="ServerUtilityTests.cs" />
383- <Compile Include="ServiceManagerSetUpFixture.cs" />
384- <Compile Include="SettingsGroupTests.cs" />
385- <Compile Include="SummaryResultFixture.cs" />
386- <Compile Include="TestAgencyTests.cs" />
387- <Compile Include="TestAgentTests.cs" />
388- <Compile Include="TestDomainFixture.cs" />
389- <Compile Include="TestDomainTests_Multiple.cs" />
390- <Compile Include="TestEventCatcher.cs" />
391- <Compile Include="TestLoaderAssemblyTests.cs" />
392- <Compile Include="TestRunnerFactoryTests.cs" />
393- <Compile Include="TestServerTests.cs" />
394- <Compile Include="VisualStudioConverterTests.cs" />
395- <Compile Include="VSProjectTests.cs" />
396- <Compile Include="XmlResultWriterTest.cs" />
397- </ItemGroup>
398- <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
399- <PropertyGroup>
400- <PreBuildEvent>
401- </PreBuildEvent>
402- <PostBuildEvent>
403- </PostBuildEvent>
404- </PropertyGroup>
405+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
406+ <PropertyGroup>
407+ <ProjectType>Local</ProjectType>
408+ <ProductVersion>9.0.30729</ProductVersion>
409+ <SchemaVersion>2.0</SchemaVersion>
410+ <ProjectGuid>{74EF7165-117E-48ED-98EA-068EAE438E53}</ProjectGuid>
411+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
412+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
413+ <ApplicationIcon>
414+ </ApplicationIcon>
415+ <AssemblyKeyContainerName>
416+ </AssemblyKeyContainerName>
417+ <AssemblyName>nunit.util.tests</AssemblyName>
418+ <AssemblyOriginatorKeyFile>
419+ </AssemblyOriginatorKeyFile>
420+ <DefaultClientScript>JScript</DefaultClientScript>
421+ <DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout>
422+ <DefaultTargetSchema>IE50</DefaultTargetSchema>
423+ <DelaySign>false</DelaySign>
424+ <OutputType>Library</OutputType>
425+ <RootNamespace>NUnit.Util.Tests</RootNamespace>
426+ <RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
427+ <StartupObject>
428+ </StartupObject>
429+ <FileUpgradeFlags>
430+ </FileUpgradeFlags>
431+ <UpgradeBackupLocation>
432+ </UpgradeBackupLocation>
433+ <OldToolsVersion>2.0</OldToolsVersion>
434+ </PropertyGroup>
435+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
436+ <OutputPath>..\..\bin\Debug\tests\</OutputPath>
437+ <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
438+ <BaseAddress>285212672</BaseAddress>
439+ <CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
440+ <ConfigurationOverrideFile>
441+ </ConfigurationOverrideFile>
442+ <DefineConstants>DEBUG;TRACE</DefineConstants>
443+ <DocumentationFile>
444+ </DocumentationFile>
445+ <DebugSymbols>true</DebugSymbols>
446+ <FileAlignment>4096</FileAlignment>
447+ <NoStdLib>false</NoStdLib>
448+ <NoWarn>
449+ </NoWarn>
450+ <Optimize>false</Optimize>
451+ <RegisterForComInterop>false</RegisterForComInterop>
452+ <RemoveIntegerChecks>false</RemoveIntegerChecks>
453+ <TreatWarningsAsErrors>false</TreatWarningsAsErrors>
454+ <WarningLevel>4</WarningLevel>
455+ <DebugType>full</DebugType>
456+ <ErrorReport>prompt</ErrorReport>
457+ </PropertyGroup>
458+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
459+ <OutputPath>..\..\bin\Release\tests\</OutputPath>
460+ <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
461+ <BaseAddress>285212672</BaseAddress>
462+ <CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
463+ <ConfigurationOverrideFile>
464+ </ConfigurationOverrideFile>
465+ <DefineConstants>TRACE</DefineConstants>
466+ <DocumentationFile>
467+ </DocumentationFile>
468+ <DebugSymbols>false</DebugSymbols>
469+ <FileAlignment>4096</FileAlignment>
470+ <NoStdLib>false</NoStdLib>
471+ <NoWarn>
472+ </NoWarn>
473+ <Optimize>true</Optimize>
474+ <RegisterForComInterop>false</RegisterForComInterop>
475+ <RemoveIntegerChecks>false</RemoveIntegerChecks>
476+ <TreatWarningsAsErrors>false</TreatWarningsAsErrors>
477+ <WarningLevel>4</WarningLevel>
478+ <DebugType>none</DebugType>
479+ <ErrorReport>prompt</ErrorReport>
480+ </PropertyGroup>
481+ <ItemGroup>
482+ <Reference Include="System">
483+ <Name>System</Name>
484+ </Reference>
485+ <Reference Include="System.Data">
486+ <Name>System.Data</Name>
487+ </Reference>
488+ <Reference Include="System.Drawing">
489+ <Name>System.Drawing</Name>
490+ </Reference>
491+ <Reference Include="System.Runtime.Remoting">
492+ <Name>System.Runtime.Remoting</Name>
493+ </Reference>
494+ <Reference Include="System.Xml">
495+ <Name>System.XML</Name>
496+ </Reference>
497+ <ProjectReference Include="..\..\NUnitCore\core\nunit.core.dll.csproj">
498+ <Name>nunit.core.dll</Name>
499+ <Project>{EBD43A7F-AFCA-4281-BB53-5CDD91F966A3}</Project>
500+ <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
501+ <Private>False</Private>
502+ </ProjectReference>
503+ <ProjectReference Include="..\..\NUnitCore\interfaces\nunit.core.interfaces.dll.csproj">
504+ <Name>nunit.core.interfaces.dll</Name>
505+ <Project>{435428F8-5995-4CE4-8022-93D595A8CC0F}</Project>
506+ <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
507+ <Private>False</Private>
508+ </ProjectReference>
509+ <ProjectReference Include="..\..\NUnitCore\tests\nunit.core.tests.csproj">
510+ <Name>nunit.core.tests</Name>
511+ <Project>{DD758D21-E5D5-4D40-9450-5F65A32F359C}</Project>
512+ <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
513+ <Private>False</Private>
514+ </ProjectReference>
515+ <ProjectReference Include="..\..\NUnitFramework\framework\nunit.framework.dll.csproj">
516+ <Name>nunit.framework.dll</Name>
517+ <Project>{83DD7E12-A705-4DBA-9D71-09C8973D9382}</Project>
518+ <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
519+ <Private>True</Private>
520+ </ProjectReference>
521+ <ProjectReference Include="..\..\tests\mock-assembly\mock-assembly.csproj">
522+ <Name>mock-assembly</Name>
523+ <Project>{2E368281-3BA8-4050-B05E-0E0E43F8F446}</Project>
524+ <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
525+ <Private>False</Private>
526+ </ProjectReference>
527+ <ProjectReference Include="..\..\tests\nonamespace-assembly\nonamespace-assembly.csproj">
528+ <Name>nonamespace-assembly</Name>
529+ <Project>{5110F0D2-8E50-46F8-9E17-7C8EBFECCA9D}</Project>
530+ <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
531+ <Private>False</Private>
532+ </ProjectReference>
533+ <ProjectReference Include="..\..\tests\test-utilities\test-utilities.csproj">
534+ <Name>test-utilities</Name>
535+ <Project>{3E63AD0F-24D4-46BE-BEE4-5A3299847D86}</Project>
536+ <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
537+ </ProjectReference>
538+ <ProjectReference Include="..\util\nunit.util.dll.csproj">
539+ <Name>nunit.util.dll</Name>
540+ <Project>{61CE9CE5-943E-44D4-A381-814DC1406767}</Project>
541+ <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
542+ </ProjectReference>
543+ </ItemGroup>
544+ <ItemGroup>
545+ <EmbeddedResource Include="resources\ClassLibrary1.csproj" />
546+ <EmbeddedResource Include="resources\csharp-sample.csproj" />
547+ <EmbeddedResource Include="resources\csharp-sample_VS2005.csproj" />
548+ <EmbeddedResource Include="resources\csharp-sample_VS2005_noplatform.csproj" />
549+ <EmbeddedResource Include="resources\HebrewFileProblem.csproj" />
550+ <EmbeddedResource Include="resources\jsharp.vjsproj" />
551+ <EmbeddedResource Include="resources\jsharp_VS2005.vjsproj" />
552+ <EmbeddedResource Include="resources\MultiplePlatformProject.csproj" />
553+ <EmbeddedResource Include="resources\samples.sln" />
554+ <EmbeddedResource Include="resources\samples_VS2005.sln" />
555+ <EmbeddedResource Include="resources\Solution1.sln" />
556+ <EmbeddedResource Include="resources\vb-sample.vbproj" />
557+ <EmbeddedResource Include="resources\vb-sample_VS2005.vbproj" />
558+ <EmbeddedResource Include="resources\WebApplication1.sln" />
559+ <EmbeddedResource Include="resources\XNAWindowsProject.csproj" />
560+ </ItemGroup>
561+ <ItemGroup>
562+ <EmbeddedResource Include="resources\cpp-default-library_VS2005.vcproj" />
563+ <EmbeddedResource Include="resources\cpp-sample.vcproj" />
564+ <EmbeddedResource Include="resources\cpp-sample_VS2005.vcproj" />
565+ <EmbeddedResource Include="resources\CPPLibrary.vcproj" />
566+ <EmbeddedResource Include="resources\MakeFileProject.vcproj" />
567+ <EmbeddedResource Include="resources\Unmanaged.vcproj" />
568+ </ItemGroup>
569+ <ItemGroup>
570+ <Compile Include="..\..\CommonAssemblyInfo.cs">
571+ <Link>CommonAssemblyInfo.cs</Link>
572+ </Compile>
573+ <Compile Include="AssemblyListTests.cs" />
574+ <Compile Include="CategoryManagerTest.cs" />
575+ <Compile Include="CategoryParseTests.cs" />
576+ <Compile Include="DomainManagerTests.cs" />
577+ <Compile Include="EventDispatcherTests.cs" />
578+ <Compile Include="FileWatcherTest.cs" />
579+ <Compile Include="MemorySettingsStorageTests.cs" />
580+ <Compile Include="MockAssemblyWatcher.cs" />
581+ <Compile Include="NUnitProjectLoad.cs" />
582+ <Compile Include="NUnitProjectSave.cs" />
583+ <Compile Include="NUnitProjectTests.cs" />
584+ <Compile Include="NUnitProjectXml.cs" />
585+ <Compile Include="NUnitRegistryTests.cs" />
586+ <Compile Include="PathUtilTests.cs" />
587+ <Compile Include="ProcessRunnerTests.cs" />
588+ <Compile Include="ProjectConfigTests.cs" />
589+ <Compile Include="RecentFileEntryTests.cs" />
590+ <Compile Include="RecentFilesTests.cs" />
591+ <Compile Include="RegistrySettingsStorageTests.cs" />
592+ <Compile Include="RemoteTestResultTest.cs" />
593+ <Compile Include="RuntimeFrameworkSelectorTests.cs" />
594+ <Compile Include="ServerUtilityTests.cs" />
595+ <Compile Include="ServiceManagerSetUpFixture.cs" />
596+ <Compile Include="SettingsGroupTests.cs" />
597+ <Compile Include="SummaryResultFixture.cs" />
598+ <Compile Include="TestAgencyTests.cs" />
599+ <Compile Include="TestAgentTests.cs" />
600+ <Compile Include="TestDomainFixture.cs" />
601+ <Compile Include="TestDomainTests_Multiple.cs" />
602+ <Compile Include="TestEventCatcher.cs" />
603+ <Compile Include="TestLoaderAssemblyTests.cs" />
604+ <Compile Include="TestLoaderWatcherTests.cs" />
605+ <Compile Include="TestRunnerFactoryTests.cs" />
606+ <Compile Include="TestServerTests.cs" />
607+ <Compile Include="VisualStudioConverterTests.cs" />
608+ <Compile Include="VSProjectTests.cs" />
609+ <Compile Include="XmlResultWriterTest.cs" />
610+ </ItemGroup>
611+ <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
612+ <PropertyGroup>
613+ <PreBuildEvent>
614+ </PreBuildEvent>
615+ <PostBuildEvent>
616+ </PostBuildEvent>
617+ </PropertyGroup>
618 </Project>
619\ No newline at end of file
620
621=== modified file 'src/ClientUtilities/util/AssemblyWatcher.cs'
622--- src/ClientUtilities/util/AssemblyWatcher.cs 2009-04-18 02:24:12 +0000
623+++ src/ClientUtilities/util/AssemblyWatcher.cs 2010-09-09 18:41:13 +0000
624@@ -6,9 +6,8 @@
625
626 using System;
627 using System.IO;
628-using System.Text;
629 using System.Timers;
630-using System.Collections;
631+using System.Collections.Generic;
632
633 namespace NUnit.Util
634 {
635@@ -20,46 +19,72 @@
636 /// an argument to the event handler so that one routine can
637 /// be used to handle events from multiple watchers.
638 /// </summary>
639- public class AssemblyWatcher
640+ public class AssemblyWatcher : IAssemblyWatcher
641 {
642- FileSystemWatcher[] fileWatcher;
643- FileInfo[] fileInfo;
644+ private FileSystemWatcher[] fileWatchers;
645+ private FileInfo[] files;
646+ private bool isWatching;
647
648 protected System.Timers.Timer timer;
649- protected string changedAssemblyPath;
650-
651- public delegate void AssemblyChangedHandler(String fullPath);
652- public event AssemblyChangedHandler AssemblyChangedEvent;
653-
654- public AssemblyWatcher( int delay, string assemblyFileName )
655- : this( delay, new string[]{ assemblyFileName } ) { }
656-
657- public AssemblyWatcher( int delay, IList assemblies )
658- {
659- fileInfo = new FileInfo[assemblies.Count];
660- fileWatcher = new FileSystemWatcher[assemblies.Count];
661-
662- for( int i = 0; i < assemblies.Count; i++ )
663- {
664- fileInfo[i] = new FileInfo( (string)assemblies[i] );
665-
666- fileWatcher[i] = new FileSystemWatcher();
667- fileWatcher[i].Path = fileInfo[i].DirectoryName;
668- fileWatcher[i].Filter = fileInfo[i].Name;
669- fileWatcher[i].NotifyFilter = NotifyFilters.Size | NotifyFilters.LastWrite;
670- fileWatcher[i].Changed+=new FileSystemEventHandler(OnChanged);
671- fileWatcher[i].EnableRaisingEvents = false;
672- }
673-
674- timer = new System.Timers.Timer( delay );
675- timer.AutoReset=false;
676- timer.Enabled=false;
677- timer.Elapsed+=new ElapsedEventHandler(OnTimer);
678- }
679-
680- public FileInfo GetFileInfo( int index )
681- {
682- return fileInfo[index];
683+ protected string changedAssemblyPath;
684+
685+ protected FileInfo GetFileInfo(int index)
686+ {
687+ return files[index];
688+ }
689+
690+ //public AssemblyWatcher( int delay, string assemblyFileName )
691+ // : this( delay, new string[]{ assemblyFileName } ) { }
692+
693+ //public AssemblyWatcher( int delay, IList assemblies )
694+ //{
695+ // files = new FileInfo[assemblies.Count];
696+ // fileWatchers = new FileSystemWatcher[assemblies.Count];
697+
698+ // for( int i = 0; i < assemblies.Count; i++ )
699+ // {
700+ // files[i] = new FileInfo( (string)assemblies[i] );
701+
702+ // fileWatchers[i] = new FileSystemWatcher();
703+ // fileWatchers[i].Path = files[i].DirectoryName;
704+ // fileWatchers[i].Filter = files[i].Name;
705+ // fileWatchers[i].NotifyFilter = NotifyFilters.Size | NotifyFilters.LastWrite;
706+ // fileWatchers[i].Changed+=new FileSystemEventHandler(OnChanged);
707+ // fileWatchers[i].EnableRaisingEvents = false;
708+ // }
709+
710+ // timer = new System.Timers.Timer( delay );
711+ // timer.AutoReset=false;
712+ // timer.Enabled=false;
713+ // timer.Elapsed+=new ElapsedEventHandler(OnTimer);
714+ //}
715+
716+ public void Setup(int delay, string assemblyFileName)
717+ {
718+ Setup(delay, new string[] {assemblyFileName});
719+ }
720+
721+ public void Setup(int delay, IList<string> assemblies)
722+ {
723+ files = new FileInfo[assemblies.Count];
724+ fileWatchers = new FileSystemWatcher[assemblies.Count];
725+
726+ for (int i = 0; i < assemblies.Count; i++)
727+ {
728+ files[i] = new FileInfo((string)assemblies[i]);
729+
730+ fileWatchers[i] = new FileSystemWatcher();
731+ fileWatchers[i].Path = files[i].DirectoryName;
732+ fileWatchers[i].Filter = files[i].Name;
733+ fileWatchers[i].NotifyFilter = NotifyFilters.Size | NotifyFilters.LastWrite;
734+ fileWatchers[i].Changed += new FileSystemEventHandler(OnChanged);
735+ fileWatchers[i].EnableRaisingEvents = false;
736+ }
737+
738+ timer = new System.Timers.Timer(delay);
739+ timer.AutoReset = false;
740+ timer.Enabled = false;
741+ timer.Elapsed += new ElapsedEventHandler(OnTimer);
742 }
743
744 public void Start()
745@@ -74,9 +99,45 @@
746
747 private void EnableWatchers( bool enable )
748 {
749- foreach( FileSystemWatcher watcher in fileWatcher )
750+ if (ReferenceEquals(fileWatchers, null))
751+ return;
752+
753+ foreach( FileSystemWatcher watcher in fileWatchers )
754 watcher.EnableRaisingEvents = enable;
755- }
756+
757+ isWatching = enable;
758+ }
759+
760+ public void FreeResources()
761+ {
762+ if (isWatching)
763+ {
764+ EnableWatchers(false);
765+ }
766+
767+ if (!ReferenceEquals(fileWatchers, null))
768+ {
769+ foreach (FileSystemWatcher watcher in fileWatchers)
770+ {
771+ if (ReferenceEquals(watcher, null))
772+ continue;
773+
774+ watcher.Changed -= new FileSystemEventHandler(OnChanged);
775+ watcher.Dispose();
776+ }
777+ }
778+
779+ if (!ReferenceEquals(timer, null))
780+ {
781+ timer.Stop();
782+ timer.Close();
783+ }
784+
785+ fileWatchers = null;
786+ timer = null;
787+ }
788+
789+ public event AssemblyChangedHandler AssemblyChanged;
790
791 protected void OnTimer(Object source, ElapsedEventArgs e)
792 {
793@@ -107,8 +168,8 @@
794
795 protected void PublishEvent()
796 {
797- if ( AssemblyChangedEvent != null )
798- AssemblyChangedEvent( changedAssemblyPath );
799+ if ( AssemblyChanged != null )
800+ AssemblyChanged( changedAssemblyPath );
801 }
802 }
803 }
804\ No newline at end of file
805
806=== added file 'src/ClientUtilities/util/IAssemblyWatcher.cs'
807--- src/ClientUtilities/util/IAssemblyWatcher.cs 1970-01-01 00:00:00 +0000
808+++ src/ClientUtilities/util/IAssemblyWatcher.cs 2010-09-09 18:41:13 +0000
809@@ -0,0 +1,54 @@
810+using System;
811+using System.Collections.Generic;
812+
813+namespace NUnit.Util
814+{
815+ public delegate void AssemblyChangedHandler(string fullPath);
816+
817+ /// <summary>
818+ /// AssemblyWatcher keeps track of one or more assemblies to
819+ /// see if they have changed. It incorporates a delayed notification
820+ /// and uses a standard event to notify any interested parties
821+ /// about the change. The path to the assembly is provided as
822+ /// an argument to the event handler so that one routine can
823+ /// be used to handle events from multiple watchers.
824+ /// </summary>
825+ public interface IAssemblyWatcher
826+ {
827+ /// <summary>
828+ /// Stops watching for changes.
829+ /// To release resources call FreeResources.
830+ /// </summary>
831+ void Stop();
832+
833+ /// <summary>
834+ /// Starts watching for assembly changes.
835+ /// You need to call Setup before start watching.
836+ /// </summary>
837+ void Start();
838+
839+ /// <summary>
840+ /// Initializes the watcher with assemblies to observe for changes.
841+ /// </summary>
842+ /// <param name="delayInMs">The delay in ms.</param>
843+ /// <param name="assemblies">The assemblies.</param>
844+ void Setup(int delayInMs, IList<string> assemblies);
845+
846+ /// <summary>
847+ /// Initializes the watcher with assemblies to observe for changes.
848+ /// </summary>
849+ /// <param name="delayInMs">The delay in ms.</param>
850+ /// <param name="assemblyFileName">Name of the assembly file.</param>
851+ void Setup(int delayInMs, string assemblyFileName);
852+
853+ /// <summary>
854+ /// Releases all resources held by the watcher.
855+ /// </summary>
856+ void FreeResources();
857+
858+ /// <summary>
859+ /// Occurs when an assembly being watched has changed.
860+ /// </summary>
861+ event AssemblyChangedHandler AssemblyChanged;
862+ }
863+}
864\ No newline at end of file
865
866=== modified file 'src/ClientUtilities/util/TestLoader.cs'
867--- src/ClientUtilities/util/TestLoader.cs 2010-07-22 23:55:39 +0000
868+++ src/ClientUtilities/util/TestLoader.cs 2010-09-09 18:41:13 +0000
869@@ -8,7 +8,8 @@
870 {
871 using System;
872 using System.IO;
873- using System.Collections;
874+ using System.Collections;
875+ using System.Diagnostics;
876 using System.Threading;
877 using System.Configuration;
878 using NUnit.Core;
879@@ -87,8 +88,8 @@
880
881 /// <summary>
882 /// Watcher fires when the assembly changes
883- /// </summary>
884- private AssemblyWatcher watcher;
885+ /// </summary>
886+ private IAssemblyWatcher watcher;
887
888 /// <summary>
889 /// Assembly changed during a test and
890@@ -116,11 +117,18 @@
891 public TestLoader()
892 : this( new TestEventDispatcher() ) { }
893
894- public TestLoader(TestEventDispatcher eventDispatcher )
895- {
896- this.events = eventDispatcher;
897- this.factory = new DefaultTestRunnerFactory();
898- AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler( OnUnhandledException );
899+ public TestLoader(TestEventDispatcher eventDispatcher)
900+ : this(eventDispatcher, new AssemblyWatcher()) { }
901+
902+ public TestLoader(IAssemblyWatcher assemblyWatcher)
903+ : this(new TestEventDispatcher(), assemblyWatcher) { }
904+
905+ public TestLoader(TestEventDispatcher eventDispatcher, IAssemblyWatcher assemblyWatcher)
906+ {
907+ this.events = eventDispatcher;
908+ this.watcher = assemblyWatcher;
909+ this.factory = new DefaultTestRunnerFactory();
910+ AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(OnUnhandledException);
911 }
912
913 #endregion
914@@ -569,9 +577,12 @@
915
916 loadedTest = testRunner.Test;
917 currentRuntime = framework;
918- reloadPending = false;
919-
920- testProject.HasChangesRequiringReload = false;
921+ reloadPending = false;
922+
923+ if (Services.UserSettings.GetSetting("Options.TestLoader.ReloadOnChange", true))
924+ InstallWatcher();
925+
926+ testProject.HasChangesRequiringReload = false;
927 events.FireTestReloaded(TestFileName, loadedTest);
928
929 log.Info("Reload complete");
930@@ -669,10 +680,12 @@
931 /// </summary>
932 private void InstallWatcher()
933 {
934- if(watcher!=null) watcher.Stop();
935+ Debug.Assert(!ReferenceEquals(watcher, null));
936+ watcher.Stop();
937+ watcher.FreeResources();
938
939- watcher = new AssemblyWatcher( 1000, TestProject.ActiveConfig.Assemblies.ToArray() );
940- watcher.AssemblyChangedEvent += new AssemblyWatcher.AssemblyChangedHandler( OnTestChanged );
941+ watcher.Setup(1000, TestProject.ActiveConfig.Assemblies.ToArray());
942+ watcher.AssemblyChanged += new AssemblyChangedHandler( OnTestChanged );
943 watcher.Start();
944 }
945
946@@ -680,12 +693,10 @@
947 /// Stop and remove our current watcher object.
948 /// </summary>
949 private void RemoveWatcher()
950- {
951- if ( watcher != null )
952- {
953- watcher.Stop();
954- watcher = null;
955- }
956+ {
957+ Debug.Assert(!ReferenceEquals(watcher, null));
958+ watcher.Stop();
959+ watcher.FreeResources();
960 }
961
962 private TestPackage MakeTestPackage( string testName )
963
964=== modified file 'src/ClientUtilities/util/nunit.util.build'
965--- src/ClientUtilities/util/nunit.util.build 2010-07-22 23:55:39 +0000
966+++ src/ClientUtilities/util/nunit.util.build 2010-09-09 18:41:13 +0000
967@@ -11,6 +11,7 @@
968 <include name="CommandLineOptions.cs"/>
969 <include name="ConsoleWriter.cs"/>
970 <include name="DefaultTestRunnerFactory.cs"/>
971+ <include name="IAssemblyWatcher.cs"/>
972 <include name="InProcessTestRunnerFactory.cs"/>
973 <include name="MemorySettingsStorage.cs"/>
974 <include name="NUnitProject.cs"/>
975
976=== modified file 'src/ClientUtilities/util/nunit.util.dll.csproj'
977--- src/ClientUtilities/util/nunit.util.dll.csproj 2010-08-06 18:37:35 +0000
978+++ src/ClientUtilities/util/nunit.util.dll.csproj 2010-09-09 18:41:13 +0000
979@@ -1,181 +1,182 @@
980-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
981- <PropertyGroup>
982- <ProjectType>Local</ProjectType>
983- <ProductVersion>9.0.30729</ProductVersion>
984- <SchemaVersion>2.0</SchemaVersion>
985- <ProjectGuid>{61CE9CE5-943E-44D4-A381-814DC1406767}</ProjectGuid>
986- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
987- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
988- <ApplicationIcon>
989- </ApplicationIcon>
990- <AssemblyKeyContainerName>
991- </AssemblyKeyContainerName>
992- <AssemblyName>nunit.util</AssemblyName>
993- <AssemblyOriginatorKeyFile>
994- </AssemblyOriginatorKeyFile>
995- <DefaultClientScript>JScript</DefaultClientScript>
996- <DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout>
997- <DefaultTargetSchema>IE50</DefaultTargetSchema>
998- <DelaySign>false</DelaySign>
999- <OutputType>Library</OutputType>
1000- <RootNamespace>NUnit.Util</RootNamespace>
1001- <RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
1002- <StartupObject>
1003- </StartupObject>
1004- <FileUpgradeFlags>
1005- </FileUpgradeFlags>
1006- <UpgradeBackupLocation>
1007- </UpgradeBackupLocation>
1008- <OldToolsVersion>2.0</OldToolsVersion>
1009- </PropertyGroup>
1010- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
1011- <OutputPath>..\..\bin\Debug\lib\</OutputPath>
1012- <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
1013- <BaseAddress>285212672</BaseAddress>
1014- <CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
1015- <ConfigurationOverrideFile>
1016- </ConfigurationOverrideFile>
1017- <DefineConstants>TRACE;DEBUG;NET_2_0</DefineConstants>
1018- <DocumentationFile>
1019- </DocumentationFile>
1020- <DebugSymbols>true</DebugSymbols>
1021- <FileAlignment>4096</FileAlignment>
1022- <NoStdLib>false</NoStdLib>
1023- <NoWarn>1699</NoWarn>
1024- <Optimize>false</Optimize>
1025- <RegisterForComInterop>false</RegisterForComInterop>
1026- <RemoveIntegerChecks>false</RemoveIntegerChecks>
1027- <TreatWarningsAsErrors>false</TreatWarningsAsErrors>
1028- <WarningLevel>4</WarningLevel>
1029- <DebugType>full</DebugType>
1030- <ErrorReport>prompt</ErrorReport>
1031- </PropertyGroup>
1032- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
1033- <OutputPath>..\..\bin\Release\lib\</OutputPath>
1034- <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
1035- <BaseAddress>285212672</BaseAddress>
1036- <CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
1037- <ConfigurationOverrideFile>
1038- </ConfigurationOverrideFile>
1039- <DefineConstants>TRACE;NET_2_0</DefineConstants>
1040- <DocumentationFile>
1041- </DocumentationFile>
1042- <DebugSymbols>false</DebugSymbols>
1043- <FileAlignment>4096</FileAlignment>
1044- <NoStdLib>false</NoStdLib>
1045- <NoWarn>1699</NoWarn>
1046- <Optimize>true</Optimize>
1047- <RegisterForComInterop>false</RegisterForComInterop>
1048- <RemoveIntegerChecks>false</RemoveIntegerChecks>
1049- <TreatWarningsAsErrors>false</TreatWarningsAsErrors>
1050- <WarningLevel>4</WarningLevel>
1051- <DebugType>none</DebugType>
1052- <ErrorReport>prompt</ErrorReport>
1053- </PropertyGroup>
1054- <ItemGroup>
1055- <Reference Include="System">
1056- <Name>System</Name>
1057- </Reference>
1058- <Reference Include="System.configuration" />
1059- <Reference Include="System.Data">
1060- <Name>System.Data</Name>
1061- </Reference>
1062- <Reference Include="System.Drawing">
1063- <Name>System.Drawing</Name>
1064- </Reference>
1065- <Reference Include="System.Runtime.Remoting">
1066- <Name>System.Runtime.Remoting</Name>
1067- </Reference>
1068- <Reference Include="System.Xml">
1069- <Name>System.XML</Name>
1070- </Reference>
1071- <ProjectReference Include="..\..\NUnitCore\core\nunit.core.dll.csproj">
1072- <Name>nunit.core.dll</Name>
1073- <Project>{EBD43A7F-AFCA-4281-BB53-5CDD91F966A3}</Project>
1074- <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
1075- <Private>False</Private>
1076- </ProjectReference>
1077- <ProjectReference Include="..\..\NUnitCore\interfaces\nunit.core.interfaces.dll.csproj">
1078- <Name>nunit.core.interfaces.dll</Name>
1079- <Project>{435428F8-5995-4CE4-8022-93D595A8CC0F}</Project>
1080- <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
1081- <Private>False</Private>
1082- </ProjectReference>
1083- </ItemGroup>
1084- <ItemGroup>
1085- <Compile Include="..\..\CommonAssemblyInfo.cs">
1086- <Link>CommonAssemblyInfo.cs</Link>
1087- </Compile>
1088- <Compile Include="AggregatingTestRunner.cs" />
1089- <Compile Include="AssemblyInfo.cs" />
1090- <Compile Include="AssemblyList.cs" />
1091- <Compile Include="AssemblyWatcher.cs" />
1092- <Compile Include="CategoryExpression.cs" />
1093- <Compile Include="CategoryManager.cs" />
1094- <Compile Include="CommandLineOptions.cs" />
1095- <Compile Include="ConsoleWriter.cs" />
1096- <Compile Include="DefaultTestRunnerFactory.cs" />
1097- <Compile Include="Extensibility\IProjectConverter.cs" />
1098- <Compile Include="Extensibility\ProjectConverterCollection.cs" />
1099- <Compile Include="InProcessTestRunnerFactory.cs" />
1100- <Compile Include="Interfaces\IRuntimeFrameworkSelector.cs" />
1101- <Compile Include="Interfaces\ISettings.cs" />
1102- <Compile Include="Interfaces\ITestEvents.cs" />
1103- <Compile Include="Interfaces\ITestLoader.cs" />
1104- <Compile Include="Interfaces\ITestRunnerFactory.cs" />
1105- <Compile Include="MemorySettingsStorage.cs" />
1106- <Compile Include="NUnitProject.cs" />
1107- <Compile Include="NUnitRegistry.cs" />
1108- <Compile Include="PathUtils.cs" />
1109- <Compile Include="ProcessRunner.cs" />
1110- <Compile Include="ProjectConfig.cs" />
1111- <Compile Include="ProjectConfigCollection.cs" />
1112- <Compile Include="ProjectConverters\VisualStudioConverter.cs" />
1113- <Compile Include="ProjectFormatException.cs" />
1114- <Compile Include="RecentFileEntry.cs" />
1115- <Compile Include="RecentFiles.cs" />
1116- <Compile Include="RecentFilesCollection.cs" />
1117- <Compile Include="RegistrySettingsStorage.cs" />
1118- <Compile Include="RemoteTestAgent.cs" />
1119- <Compile Include="ResultSummarizer.cs" />
1120- <Compile Include="RuntimeFrameworkSelector.cs" />
1121- <Compile Include="ServerBase.cs" />
1122- <Compile Include="ServerUtilities.cs" />
1123- <Compile Include="Services.cs" />
1124- <Compile Include="Services\AddinManager.cs" />
1125- <Compile Include="Services\AddinRegistry.cs" />
1126- <Compile Include="Services\DomainManager.cs" />
1127- <Compile Include="Services\ProjectService.cs" />
1128- <Compile Include="Services\RecentFilesService.cs" />
1129- <Compile Include="Services\ServiceManager.cs" />
1130- <Compile Include="Services\SettingsService.cs" />
1131- <Compile Include="Services\TestAgency.cs" />
1132- <Compile Include="SettingsGroup.cs" />
1133- <Compile Include="SettingsStorage.cs" />
1134- <Compile Include="StackTraceFilter.cs" />
1135- <Compile Include="TestDomain.cs" />
1136- <Compile Include="TestEventArgs.cs" />
1137- <Compile Include="TestEventDispatcher.cs" />
1138- <Compile Include="TestExceptionHandler.cs" />
1139- <Compile Include="TestLoader.cs" />
1140- <Compile Include="TestObserver.cs" />
1141- <Compile Include="TestResultItem.cs" />
1142- <Compile Include="TestServer.cs" />
1143- <Compile Include="VSProject.cs" />
1144- <Compile Include="VSProjectConfig.cs" />
1145- <Compile Include="VSProjectConfigCollection.cs" />
1146- <Compile Include="XmlResultTransform.cs" />
1147- <Compile Include="XmlResultWriter.cs" />
1148- <Compile Include="XmlSettingsStorage.cs" />
1149- </ItemGroup>
1150- <ItemGroup>
1151- <EmbeddedResource Include="Transform.resx" />
1152- </ItemGroup>
1153- <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
1154- <PropertyGroup>
1155- <PreBuildEvent>
1156- </PreBuildEvent>
1157- <PostBuildEvent>
1158- </PostBuildEvent>
1159- </PropertyGroup>
1160+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
1161+ <PropertyGroup>
1162+ <ProjectType>Local</ProjectType>
1163+ <ProductVersion>9.0.30729</ProductVersion>
1164+ <SchemaVersion>2.0</SchemaVersion>
1165+ <ProjectGuid>{61CE9CE5-943E-44D4-A381-814DC1406767}</ProjectGuid>
1166+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
1167+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
1168+ <ApplicationIcon>
1169+ </ApplicationIcon>
1170+ <AssemblyKeyContainerName>
1171+ </AssemblyKeyContainerName>
1172+ <AssemblyName>nunit.util</AssemblyName>
1173+ <AssemblyOriginatorKeyFile>
1174+ </AssemblyOriginatorKeyFile>
1175+ <DefaultClientScript>JScript</DefaultClientScript>
1176+ <DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout>
1177+ <DefaultTargetSchema>IE50</DefaultTargetSchema>
1178+ <DelaySign>false</DelaySign>
1179+ <OutputType>Library</OutputType>
1180+ <RootNamespace>NUnit.Util</RootNamespace>
1181+ <RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
1182+ <StartupObject>
1183+ </StartupObject>
1184+ <FileUpgradeFlags>
1185+ </FileUpgradeFlags>
1186+ <UpgradeBackupLocation>
1187+ </UpgradeBackupLocation>
1188+ <OldToolsVersion>2.0</OldToolsVersion>
1189+ </PropertyGroup>
1190+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
1191+ <OutputPath>..\..\bin\Debug\lib\</OutputPath>
1192+ <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
1193+ <BaseAddress>285212672</BaseAddress>
1194+ <CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
1195+ <ConfigurationOverrideFile>
1196+ </ConfigurationOverrideFile>
1197+ <DefineConstants>TRACE;DEBUG;NET_2_0</DefineConstants>
1198+ <DocumentationFile>
1199+ </DocumentationFile>
1200+ <DebugSymbols>true</DebugSymbols>
1201+ <FileAlignment>4096</FileAlignment>
1202+ <NoStdLib>false</NoStdLib>
1203+ <NoWarn>1699</NoWarn>
1204+ <Optimize>false</Optimize>
1205+ <RegisterForComInterop>false</RegisterForComInterop>
1206+ <RemoveIntegerChecks>false</RemoveIntegerChecks>
1207+ <TreatWarningsAsErrors>false</TreatWarningsAsErrors>
1208+ <WarningLevel>4</WarningLevel>
1209+ <DebugType>full</DebugType>
1210+ <ErrorReport>prompt</ErrorReport>
1211+ </PropertyGroup>
1212+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
1213+ <OutputPath>..\..\bin\Release\lib\</OutputPath>
1214+ <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
1215+ <BaseAddress>285212672</BaseAddress>
1216+ <CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
1217+ <ConfigurationOverrideFile>
1218+ </ConfigurationOverrideFile>
1219+ <DefineConstants>TRACE;NET_2_0</DefineConstants>
1220+ <DocumentationFile>
1221+ </DocumentationFile>
1222+ <DebugSymbols>false</DebugSymbols>
1223+ <FileAlignment>4096</FileAlignment>
1224+ <NoStdLib>false</NoStdLib>
1225+ <NoWarn>1699</NoWarn>
1226+ <Optimize>true</Optimize>
1227+ <RegisterForComInterop>false</RegisterForComInterop>
1228+ <RemoveIntegerChecks>false</RemoveIntegerChecks>
1229+ <TreatWarningsAsErrors>false</TreatWarningsAsErrors>
1230+ <WarningLevel>4</WarningLevel>
1231+ <DebugType>none</DebugType>
1232+ <ErrorReport>prompt</ErrorReport>
1233+ </PropertyGroup>
1234+ <ItemGroup>
1235+ <Reference Include="System">
1236+ <Name>System</Name>
1237+ </Reference>
1238+ <Reference Include="System.configuration" />
1239+ <Reference Include="System.Data">
1240+ <Name>System.Data</Name>
1241+ </Reference>
1242+ <Reference Include="System.Drawing">
1243+ <Name>System.Drawing</Name>
1244+ </Reference>
1245+ <Reference Include="System.Runtime.Remoting">
1246+ <Name>System.Runtime.Remoting</Name>
1247+ </Reference>
1248+ <Reference Include="System.Xml">
1249+ <Name>System.XML</Name>
1250+ </Reference>
1251+ <ProjectReference Include="..\..\NUnitCore\core\nunit.core.dll.csproj">
1252+ <Name>nunit.core.dll</Name>
1253+ <Project>{EBD43A7F-AFCA-4281-BB53-5CDD91F966A3}</Project>
1254+ <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
1255+ <Private>False</Private>
1256+ </ProjectReference>
1257+ <ProjectReference Include="..\..\NUnitCore\interfaces\nunit.core.interfaces.dll.csproj">
1258+ <Name>nunit.core.interfaces.dll</Name>
1259+ <Project>{435428F8-5995-4CE4-8022-93D595A8CC0F}</Project>
1260+ <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
1261+ <Private>False</Private>
1262+ </ProjectReference>
1263+ </ItemGroup>
1264+ <ItemGroup>
1265+ <Compile Include="..\..\CommonAssemblyInfo.cs">
1266+ <Link>CommonAssemblyInfo.cs</Link>
1267+ </Compile>
1268+ <Compile Include="AggregatingTestRunner.cs" />
1269+ <Compile Include="AssemblyInfo.cs" />
1270+ <Compile Include="AssemblyList.cs" />
1271+ <Compile Include="AssemblyWatcher.cs" />
1272+ <Compile Include="CategoryExpression.cs" />
1273+ <Compile Include="CategoryManager.cs" />
1274+ <Compile Include="CommandLineOptions.cs" />
1275+ <Compile Include="ConsoleWriter.cs" />
1276+ <Compile Include="DefaultTestRunnerFactory.cs" />
1277+ <Compile Include="Extensibility\IProjectConverter.cs" />
1278+ <Compile Include="Extensibility\ProjectConverterCollection.cs" />
1279+ <Compile Include="IAssemblyWatcher.cs" />
1280+ <Compile Include="InProcessTestRunnerFactory.cs" />
1281+ <Compile Include="Interfaces\IRuntimeFrameworkSelector.cs" />
1282+ <Compile Include="Interfaces\ISettings.cs" />
1283+ <Compile Include="Interfaces\ITestEvents.cs" />
1284+ <Compile Include="Interfaces\ITestLoader.cs" />
1285+ <Compile Include="Interfaces\ITestRunnerFactory.cs" />
1286+ <Compile Include="MemorySettingsStorage.cs" />
1287+ <Compile Include="NUnitProject.cs" />
1288+ <Compile Include="NUnitRegistry.cs" />
1289+ <Compile Include="PathUtils.cs" />
1290+ <Compile Include="ProcessRunner.cs" />
1291+ <Compile Include="ProjectConfig.cs" />
1292+ <Compile Include="ProjectConfigCollection.cs" />
1293+ <Compile Include="ProjectConverters\VisualStudioConverter.cs" />
1294+ <Compile Include="ProjectFormatException.cs" />
1295+ <Compile Include="RecentFileEntry.cs" />
1296+ <Compile Include="RecentFiles.cs" />
1297+ <Compile Include="RecentFilesCollection.cs" />
1298+ <Compile Include="RegistrySettingsStorage.cs" />
1299+ <Compile Include="RemoteTestAgent.cs" />
1300+ <Compile Include="ResultSummarizer.cs" />
1301+ <Compile Include="RuntimeFrameworkSelector.cs" />
1302+ <Compile Include="ServerBase.cs" />
1303+ <Compile Include="ServerUtilities.cs" />
1304+ <Compile Include="Services.cs" />
1305+ <Compile Include="Services\AddinManager.cs" />
1306+ <Compile Include="Services\AddinRegistry.cs" />
1307+ <Compile Include="Services\DomainManager.cs" />
1308+ <Compile Include="Services\ProjectService.cs" />
1309+ <Compile Include="Services\RecentFilesService.cs" />
1310+ <Compile Include="Services\ServiceManager.cs" />
1311+ <Compile Include="Services\SettingsService.cs" />
1312+ <Compile Include="Services\TestAgency.cs" />
1313+ <Compile Include="SettingsGroup.cs" />
1314+ <Compile Include="SettingsStorage.cs" />
1315+ <Compile Include="StackTraceFilter.cs" />
1316+ <Compile Include="TestDomain.cs" />
1317+ <Compile Include="TestEventArgs.cs" />
1318+ <Compile Include="TestEventDispatcher.cs" />
1319+ <Compile Include="TestExceptionHandler.cs" />
1320+ <Compile Include="TestLoader.cs" />
1321+ <Compile Include="TestObserver.cs" />
1322+ <Compile Include="TestResultItem.cs" />
1323+ <Compile Include="TestServer.cs" />
1324+ <Compile Include="VSProject.cs" />
1325+ <Compile Include="VSProjectConfig.cs" />
1326+ <Compile Include="VSProjectConfigCollection.cs" />
1327+ <Compile Include="XmlResultTransform.cs" />
1328+ <Compile Include="XmlResultWriter.cs" />
1329+ <Compile Include="XmlSettingsStorage.cs" />
1330+ </ItemGroup>
1331+ <ItemGroup>
1332+ <EmbeddedResource Include="Transform.resx" />
1333+ </ItemGroup>
1334+ <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
1335+ <PropertyGroup>
1336+ <PreBuildEvent>
1337+ </PreBuildEvent>
1338+ <PostBuildEvent>
1339+ </PostBuildEvent>
1340+ </PropertyGroup>
1341 </Project>
1342\ No newline at end of file

Subscribers

People subscribed via source and target branches

to status/vote changes: