nunit-core team mailing list archive
-
nunit-core team
-
Mailing list archive
-
Message #01015
[Merge] lp:~cvetomir-todorov/nunitv2/bug603088 into lp:nunitv2
Cvetomir Todorov has proposed merging lp:~cvetomir-todorov/nunitv2/bug603088 into lp:nunitv2.
Requested reviews:
NUnit Core Developers (nunit-core)
Related bugs:
#603088 NUnit Gui: Project Config Change from Menu Does Not Change AssemblyWatcher
https://bugs.launchpad.net/bugs/603088
Fixing Bug #603088.
--
https://code.launchpad.net/~cvetomir-todorov/nunitv2/bug603088/+merge/35021
Your team NUnit Core Developers is requested to review the proposed merge of lp:~cvetomir-todorov/nunitv2/bug603088 into lp:nunitv2.
=== modified file 'src/ClientUtilities/tests/FileWatcherTest.cs'
--- src/ClientUtilities/tests/FileWatcherTest.cs 2009-04-18 02:24:12 +0000
+++ src/ClientUtilities/tests/FileWatcherTest.cs 2010-09-09 18:41:13 +0000
@@ -31,8 +31,9 @@
writer.Close();
handler = new CounterEventHandler();
- watcher = new AssemblyWatcher(watcherDelayMs, fileName);
- watcher.AssemblyChangedEvent += new AssemblyWatcher.AssemblyChangedHandler( handler.OnChanged );
+ watcher = new AssemblyWatcher();
+ watcher.Setup(watcherDelayMs, fileName);
+ watcher.AssemblyChanged += new AssemblyChangedHandler( handler.OnChanged );
watcher.Start();
}
=== modified file 'src/ClientUtilities/tests/MockAssemblyWatcher.cs'
--- src/ClientUtilities/tests/MockAssemblyWatcher.cs 2009-04-18 02:24:12 +0000
+++ src/ClientUtilities/tests/MockAssemblyWatcher.cs 2010-09-09 18:41:13 +0000
@@ -21,9 +21,6 @@
private DateTime triggerTime;
private DateTime publishTime;
- public MockAssemblyWatcher( int delay, string assemblyFileName )
- : base( delay, assemblyFileName ) { }
-
public bool EventPublished
{
get { return eventPublished; }
=== added file 'src/ClientUtilities/tests/TestLoaderWatcherTests.cs'
--- src/ClientUtilities/tests/TestLoaderWatcherTests.cs 1970-01-01 00:00:00 +0000
+++ src/ClientUtilities/tests/TestLoaderWatcherTests.cs 2010-09-09 18:41:13 +0000
@@ -0,0 +1,139 @@
+// ****************************************************************
+// This is free software licensed under the NUnit license. You
+// may obtain a copy of the license as well as information regarding
+// copyright ownership at http://nunit.org.
+// ****************************************************************
+
+using System;
+using System.Collections.Generic;
+using NUnit.Framework;
+using NUnit.Tests.Assemblies;
+
+namespace NUnit.Util.Tests
+{
+ [TestFixture]
+ public class TestLoaderWatcherTests
+ {
+ private readonly string assembly = MockAssembly.AssemblyPath;
+ private MockAssemblyWatcher2 mockWatcher;
+ private ITestLoader testLoader;
+ private const string ReloadOnChangeSetting = "Options.TestLoader.ReloadOnChange";
+
+ [SetUp]
+ public void PreprareTestLoader()
+ {
+ // arrange
+ mockWatcher = new MockAssemblyWatcher2();
+ testLoader = new TestLoader(mockWatcher);
+ testLoader.LoadProject(assembly);
+ }
+
+ [TearDown]
+ public void CleanUpSettings()
+ {
+ Services.UserSettings.RemoveSetting(ReloadOnChangeSetting);
+ }
+
+ private void AssertWatcherIsPrepared()
+ {
+ Assert.IsTrue(mockWatcher.IsWatching);
+ CollectionAssert.AreEquivalent(new string[] { assembly }, mockWatcher.AssembliesToWatch);
+ }
+
+ [Test]
+ public void LoadShouldStartWatcher()
+ {
+ // act
+ testLoader.LoadTest();
+
+ // assert
+ AssertWatcherIsPrepared();
+ }
+
+ [Test]
+ public void ReloadShouldStartWatcher()
+ {
+ // arrange
+ testLoader.LoadTest();
+ mockWatcher.AssembliesToWatch = null;
+ mockWatcher.IsWatching = false;
+
+ // act
+ testLoader.ReloadTest();
+
+ // assert
+ AssertWatcherIsPrepared();
+ }
+
+ [Test]
+ public void UnloadShouldStopWatcherAndFreeResources()
+ {
+ // act
+ testLoader.LoadTest();
+ testLoader.UnloadTest();
+
+ // assert
+ Assert.IsFalse(mockWatcher.IsWatching);
+ Assert.IsTrue(mockWatcher.AreResourcesFreed);
+ }
+
+ [Test]
+ public void LoadShouldStartWatcherDepedningOnSettings()
+ {
+ // arrange
+ Services.UserSettings.SaveSetting(ReloadOnChangeSetting, false);
+ testLoader.LoadTest();
+
+ // assert
+ Assert.IsFalse(mockWatcher.IsWatching);
+ }
+
+ [Test]
+ public void ReloadShouldStartWatcherDepedningOnSettings()
+ {
+ // arrange
+ Services.UserSettings.SaveSetting(ReloadOnChangeSetting, false);
+ testLoader.LoadTest();
+ testLoader.ReloadTest();
+
+ // assert
+ Assert.IsFalse(mockWatcher.IsWatching);
+ }
+ }
+
+ internal class MockAssemblyWatcher2 : IAssemblyWatcher
+ {
+ public bool IsWatching;
+ public IList<string> AssembliesToWatch;
+ public bool AreResourcesFreed;
+
+ public void Stop()
+ {
+ IsWatching = false;
+ }
+
+ public void Start()
+ {
+ IsWatching = true;
+ }
+
+ public void Setup(int delayInMs, IList<string> assemblies)
+ {
+ AssembliesToWatch = assemblies;
+ }
+
+ public void Setup(int delayInMs, string assemblyFileName)
+ {
+ Setup(delayInMs, new string[] {assemblyFileName});
+ }
+
+ public void FreeResources()
+ {
+ AreResourcesFreed = true;
+ }
+
+#pragma warning disable 67
+ public event AssemblyChangedHandler AssemblyChanged;
+#pragma warning restore 67
+ }
+}
\ No newline at end of file
=== modified file 'src/ClientUtilities/tests/nunit.util.tests.build'
--- src/ClientUtilities/tests/nunit.util.tests.build 2010-04-19 03:57:21 +0000
+++ src/ClientUtilities/tests/nunit.util.tests.build 2010-09-09 18:41:13 +0000
@@ -32,6 +32,7 @@
<include name="TestDomainFixture.cs"/>
<include name="TestDomainTests_Multiple.cs"/>
<include name="TestEventCatcher.cs"/>
+ <include name="TestLoaderWatcherTests.cs"/>
<include name="TestLoaderAssemblyTests.cs"/>
<include name="TestRunnerFactoryTests.cs"/>
<include name="TestServerTests.cs"/>
=== modified file 'src/ClientUtilities/tests/nunit.util.tests.csproj'
--- src/ClientUtilities/tests/nunit.util.tests.csproj 2010-08-06 18:37:35 +0000
+++ src/ClientUtilities/tests/nunit.util.tests.csproj 2010-09-09 18:41:13 +0000
@@ -1,214 +1,214 @@
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
- <PropertyGroup>
- <ProjectType>Local</ProjectType>
- <ProductVersion>9.0.30729</ProductVersion>
- <SchemaVersion>2.0</SchemaVersion>
- <ProjectGuid>{74EF7165-117E-48ED-98EA-068EAE438E53}</ProjectGuid>
- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ApplicationIcon>
- </ApplicationIcon>
- <AssemblyKeyContainerName>
- </AssemblyKeyContainerName>
- <AssemblyName>nunit.util.tests</AssemblyName>
- <AssemblyOriginatorKeyFile>
- </AssemblyOriginatorKeyFile>
- <DefaultClientScript>JScript</DefaultClientScript>
- <DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout>
- <DefaultTargetSchema>IE50</DefaultTargetSchema>
- <DelaySign>false</DelaySign>
- <OutputType>Library</OutputType>
- <RootNamespace>NUnit.Util.Tests</RootNamespace>
- <RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
- <StartupObject>
- </StartupObject>
- <FileUpgradeFlags>
- </FileUpgradeFlags>
- <UpgradeBackupLocation>
- </UpgradeBackupLocation>
- <OldToolsVersion>2.0</OldToolsVersion>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
- <OutputPath>..\..\bin\Debug\tests\</OutputPath>
- <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
- <BaseAddress>285212672</BaseAddress>
- <CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
- <ConfigurationOverrideFile>
- </ConfigurationOverrideFile>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <DocumentationFile>
- </DocumentationFile>
- <DebugSymbols>true</DebugSymbols>
- <FileAlignment>4096</FileAlignment>
- <NoStdLib>false</NoStdLib>
- <NoWarn>
- </NoWarn>
- <Optimize>false</Optimize>
- <RegisterForComInterop>false</RegisterForComInterop>
- <RemoveIntegerChecks>false</RemoveIntegerChecks>
- <TreatWarningsAsErrors>false</TreatWarningsAsErrors>
- <WarningLevel>4</WarningLevel>
- <DebugType>full</DebugType>
- <ErrorReport>prompt</ErrorReport>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
- <OutputPath>..\..\bin\Release\tests\</OutputPath>
- <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
- <BaseAddress>285212672</BaseAddress>
- <CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
- <ConfigurationOverrideFile>
- </ConfigurationOverrideFile>
- <DefineConstants>TRACE</DefineConstants>
- <DocumentationFile>
- </DocumentationFile>
- <DebugSymbols>false</DebugSymbols>
- <FileAlignment>4096</FileAlignment>
- <NoStdLib>false</NoStdLib>
- <NoWarn>
- </NoWarn>
- <Optimize>true</Optimize>
- <RegisterForComInterop>false</RegisterForComInterop>
- <RemoveIntegerChecks>false</RemoveIntegerChecks>
- <TreatWarningsAsErrors>false</TreatWarningsAsErrors>
- <WarningLevel>4</WarningLevel>
- <DebugType>none</DebugType>
- <ErrorReport>prompt</ErrorReport>
- </PropertyGroup>
- <ItemGroup>
- <Reference Include="System">
- <Name>System</Name>
- </Reference>
- <Reference Include="System.Data">
- <Name>System.Data</Name>
- </Reference>
- <Reference Include="System.Drawing">
- <Name>System.Drawing</Name>
- </Reference>
- <Reference Include="System.Runtime.Remoting">
- <Name>System.Runtime.Remoting</Name>
- </Reference>
- <Reference Include="System.Xml">
- <Name>System.XML</Name>
- </Reference>
- <ProjectReference Include="..\..\NUnitCore\core\nunit.core.dll.csproj">
- <Name>nunit.core.dll</Name>
- <Project>{EBD43A7F-AFCA-4281-BB53-5CDD91F966A3}</Project>
- <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
- <Private>False</Private>
- </ProjectReference>
- <ProjectReference Include="..\..\NUnitCore\interfaces\nunit.core.interfaces.dll.csproj">
- <Name>nunit.core.interfaces.dll</Name>
- <Project>{435428F8-5995-4CE4-8022-93D595A8CC0F}</Project>
- <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
- <Private>False</Private>
- </ProjectReference>
- <ProjectReference Include="..\..\NUnitCore\tests\nunit.core.tests.csproj">
- <Name>nunit.core.tests</Name>
- <Project>{DD758D21-E5D5-4D40-9450-5F65A32F359C}</Project>
- <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
- <Private>False</Private>
- </ProjectReference>
- <ProjectReference Include="..\..\NUnitFramework\framework\nunit.framework.dll.csproj">
- <Name>nunit.framework.dll</Name>
- <Project>{83DD7E12-A705-4DBA-9D71-09C8973D9382}</Project>
- <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
- <Private>True</Private>
- </ProjectReference>
- <ProjectReference Include="..\..\tests\mock-assembly\mock-assembly.csproj">
- <Name>mock-assembly</Name>
- <Project>{2E368281-3BA8-4050-B05E-0E0E43F8F446}</Project>
- <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
- <Private>False</Private>
- </ProjectReference>
- <ProjectReference Include="..\..\tests\nonamespace-assembly\nonamespace-assembly.csproj">
- <Name>nonamespace-assembly</Name>
- <Project>{5110F0D2-8E50-46F8-9E17-7C8EBFECCA9D}</Project>
- <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
- <Private>False</Private>
- </ProjectReference>
- <ProjectReference Include="..\..\tests\test-utilities\test-utilities.csproj">
- <Name>test-utilities</Name>
- <Project>{3E63AD0F-24D4-46BE-BEE4-5A3299847D86}</Project>
- <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
- </ProjectReference>
- <ProjectReference Include="..\util\nunit.util.dll.csproj">
- <Name>nunit.util.dll</Name>
- <Project>{61CE9CE5-943E-44D4-A381-814DC1406767}</Project>
- <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
- <Private>False</Private>
- </ProjectReference>
- </ItemGroup>
- <ItemGroup>
- <EmbeddedResource Include="resources\ClassLibrary1.csproj" />
- <EmbeddedResource Include="resources\csharp-sample.csproj" />
- <EmbeddedResource Include="resources\csharp-sample_VS2005.csproj" />
- <EmbeddedResource Include="resources\csharp-sample_VS2005_noplatform.csproj" />
- <EmbeddedResource Include="resources\HebrewFileProblem.csproj" />
- <EmbeddedResource Include="resources\jsharp.vjsproj" />
- <EmbeddedResource Include="resources\jsharp_VS2005.vjsproj" />
- <EmbeddedResource Include="resources\MultiplePlatformProject.csproj" />
- <EmbeddedResource Include="resources\samples.sln" />
- <EmbeddedResource Include="resources\samples_VS2005.sln" />
- <EmbeddedResource Include="resources\Solution1.sln" />
- <EmbeddedResource Include="resources\vb-sample.vbproj" />
- <EmbeddedResource Include="resources\vb-sample_VS2005.vbproj" />
- <EmbeddedResource Include="resources\WebApplication1.sln" />
- <EmbeddedResource Include="resources\XNAWindowsProject.csproj" />
- </ItemGroup>
- <ItemGroup>
- <EmbeddedResource Include="resources\cpp-default-library_VS2005.vcproj" />
- <EmbeddedResource Include="resources\cpp-sample.vcproj" />
- <EmbeddedResource Include="resources\cpp-sample_VS2005.vcproj" />
- <EmbeddedResource Include="resources\CPPLibrary.vcproj" />
- <EmbeddedResource Include="resources\MakeFileProject.vcproj" />
- <EmbeddedResource Include="resources\Unmanaged.vcproj" />
- </ItemGroup>
- <ItemGroup>
- <Compile Include="..\..\CommonAssemblyInfo.cs">
- <Link>CommonAssemblyInfo.cs</Link>
- </Compile>
- <Compile Include="AssemblyListTests.cs" />
- <Compile Include="CategoryManagerTest.cs" />
- <Compile Include="CategoryParseTests.cs" />
- <Compile Include="DomainManagerTests.cs" />
- <Compile Include="EventDispatcherTests.cs" />
- <Compile Include="FileWatcherTest.cs" />
- <Compile Include="MemorySettingsStorageTests.cs" />
- <Compile Include="MockAssemblyWatcher.cs" />
- <Compile Include="NUnitProjectLoad.cs" />
- <Compile Include="NUnitProjectSave.cs" />
- <Compile Include="NUnitProjectTests.cs" />
- <Compile Include="NUnitProjectXml.cs" />
- <Compile Include="NUnitRegistryTests.cs" />
- <Compile Include="PathUtilTests.cs" />
- <Compile Include="ProcessRunnerTests.cs" />
- <Compile Include="ProjectConfigTests.cs" />
- <Compile Include="RecentFileEntryTests.cs" />
- <Compile Include="RecentFilesTests.cs" />
- <Compile Include="RegistrySettingsStorageTests.cs" />
- <Compile Include="RemoteTestResultTest.cs" />
- <Compile Include="RuntimeFrameworkSelectorTests.cs" />
- <Compile Include="ServerUtilityTests.cs" />
- <Compile Include="ServiceManagerSetUpFixture.cs" />
- <Compile Include="SettingsGroupTests.cs" />
- <Compile Include="SummaryResultFixture.cs" />
- <Compile Include="TestAgencyTests.cs" />
- <Compile Include="TestAgentTests.cs" />
- <Compile Include="TestDomainFixture.cs" />
- <Compile Include="TestDomainTests_Multiple.cs" />
- <Compile Include="TestEventCatcher.cs" />
- <Compile Include="TestLoaderAssemblyTests.cs" />
- <Compile Include="TestRunnerFactoryTests.cs" />
- <Compile Include="TestServerTests.cs" />
- <Compile Include="VisualStudioConverterTests.cs" />
- <Compile Include="VSProjectTests.cs" />
- <Compile Include="XmlResultWriterTest.cs" />
- </ItemGroup>
- <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
- <PropertyGroup>
- <PreBuildEvent>
- </PreBuildEvent>
- <PostBuildEvent>
- </PostBuildEvent>
- </PropertyGroup>
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
+ <PropertyGroup>
+ <ProjectType>Local</ProjectType>
+ <ProductVersion>9.0.30729</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{74EF7165-117E-48ED-98EA-068EAE438E53}</ProjectGuid>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ApplicationIcon>
+ </ApplicationIcon>
+ <AssemblyKeyContainerName>
+ </AssemblyKeyContainerName>
+ <AssemblyName>nunit.util.tests</AssemblyName>
+ <AssemblyOriginatorKeyFile>
+ </AssemblyOriginatorKeyFile>
+ <DefaultClientScript>JScript</DefaultClientScript>
+ <DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout>
+ <DefaultTargetSchema>IE50</DefaultTargetSchema>
+ <DelaySign>false</DelaySign>
+ <OutputType>Library</OutputType>
+ <RootNamespace>NUnit.Util.Tests</RootNamespace>
+ <RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
+ <StartupObject>
+ </StartupObject>
+ <FileUpgradeFlags>
+ </FileUpgradeFlags>
+ <UpgradeBackupLocation>
+ </UpgradeBackupLocation>
+ <OldToolsVersion>2.0</OldToolsVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <OutputPath>..\..\bin\Debug\tests\</OutputPath>
+ <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
+ <BaseAddress>285212672</BaseAddress>
+ <CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
+ <ConfigurationOverrideFile>
+ </ConfigurationOverrideFile>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <DocumentationFile>
+ </DocumentationFile>
+ <DebugSymbols>true</DebugSymbols>
+ <FileAlignment>4096</FileAlignment>
+ <NoStdLib>false</NoStdLib>
+ <NoWarn>
+ </NoWarn>
+ <Optimize>false</Optimize>
+ <RegisterForComInterop>false</RegisterForComInterop>
+ <RemoveIntegerChecks>false</RemoveIntegerChecks>
+ <TreatWarningsAsErrors>false</TreatWarningsAsErrors>
+ <WarningLevel>4</WarningLevel>
+ <DebugType>full</DebugType>
+ <ErrorReport>prompt</ErrorReport>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <OutputPath>..\..\bin\Release\tests\</OutputPath>
+ <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
+ <BaseAddress>285212672</BaseAddress>
+ <CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
+ <ConfigurationOverrideFile>
+ </ConfigurationOverrideFile>
+ <DefineConstants>TRACE</DefineConstants>
+ <DocumentationFile>
+ </DocumentationFile>
+ <DebugSymbols>false</DebugSymbols>
+ <FileAlignment>4096</FileAlignment>
+ <NoStdLib>false</NoStdLib>
+ <NoWarn>
+ </NoWarn>
+ <Optimize>true</Optimize>
+ <RegisterForComInterop>false</RegisterForComInterop>
+ <RemoveIntegerChecks>false</RemoveIntegerChecks>
+ <TreatWarningsAsErrors>false</TreatWarningsAsErrors>
+ <WarningLevel>4</WarningLevel>
+ <DebugType>none</DebugType>
+ <ErrorReport>prompt</ErrorReport>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="System">
+ <Name>System</Name>
+ </Reference>
+ <Reference Include="System.Data">
+ <Name>System.Data</Name>
+ </Reference>
+ <Reference Include="System.Drawing">
+ <Name>System.Drawing</Name>
+ </Reference>
+ <Reference Include="System.Runtime.Remoting">
+ <Name>System.Runtime.Remoting</Name>
+ </Reference>
+ <Reference Include="System.Xml">
+ <Name>System.XML</Name>
+ </Reference>
+ <ProjectReference Include="..\..\NUnitCore\core\nunit.core.dll.csproj">
+ <Name>nunit.core.dll</Name>
+ <Project>{EBD43A7F-AFCA-4281-BB53-5CDD91F966A3}</Project>
+ <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
+ <Private>False</Private>
+ </ProjectReference>
+ <ProjectReference Include="..\..\NUnitCore\interfaces\nunit.core.interfaces.dll.csproj">
+ <Name>nunit.core.interfaces.dll</Name>
+ <Project>{435428F8-5995-4CE4-8022-93D595A8CC0F}</Project>
+ <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
+ <Private>False</Private>
+ </ProjectReference>
+ <ProjectReference Include="..\..\NUnitCore\tests\nunit.core.tests.csproj">
+ <Name>nunit.core.tests</Name>
+ <Project>{DD758D21-E5D5-4D40-9450-5F65A32F359C}</Project>
+ <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
+ <Private>False</Private>
+ </ProjectReference>
+ <ProjectReference Include="..\..\NUnitFramework\framework\nunit.framework.dll.csproj">
+ <Name>nunit.framework.dll</Name>
+ <Project>{83DD7E12-A705-4DBA-9D71-09C8973D9382}</Project>
+ <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
+ <Private>True</Private>
+ </ProjectReference>
+ <ProjectReference Include="..\..\tests\mock-assembly\mock-assembly.csproj">
+ <Name>mock-assembly</Name>
+ <Project>{2E368281-3BA8-4050-B05E-0E0E43F8F446}</Project>
+ <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
+ <Private>False</Private>
+ </ProjectReference>
+ <ProjectReference Include="..\..\tests\nonamespace-assembly\nonamespace-assembly.csproj">
+ <Name>nonamespace-assembly</Name>
+ <Project>{5110F0D2-8E50-46F8-9E17-7C8EBFECCA9D}</Project>
+ <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
+ <Private>False</Private>
+ </ProjectReference>
+ <ProjectReference Include="..\..\tests\test-utilities\test-utilities.csproj">
+ <Name>test-utilities</Name>
+ <Project>{3E63AD0F-24D4-46BE-BEE4-5A3299847D86}</Project>
+ <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
+ </ProjectReference>
+ <ProjectReference Include="..\util\nunit.util.dll.csproj">
+ <Name>nunit.util.dll</Name>
+ <Project>{61CE9CE5-943E-44D4-A381-814DC1406767}</Project>
+ <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
+ </ProjectReference>
+ </ItemGroup>
+ <ItemGroup>
+ <EmbeddedResource Include="resources\ClassLibrary1.csproj" />
+ <EmbeddedResource Include="resources\csharp-sample.csproj" />
+ <EmbeddedResource Include="resources\csharp-sample_VS2005.csproj" />
+ <EmbeddedResource Include="resources\csharp-sample_VS2005_noplatform.csproj" />
+ <EmbeddedResource Include="resources\HebrewFileProblem.csproj" />
+ <EmbeddedResource Include="resources\jsharp.vjsproj" />
+ <EmbeddedResource Include="resources\jsharp_VS2005.vjsproj" />
+ <EmbeddedResource Include="resources\MultiplePlatformProject.csproj" />
+ <EmbeddedResource Include="resources\samples.sln" />
+ <EmbeddedResource Include="resources\samples_VS2005.sln" />
+ <EmbeddedResource Include="resources\Solution1.sln" />
+ <EmbeddedResource Include="resources\vb-sample.vbproj" />
+ <EmbeddedResource Include="resources\vb-sample_VS2005.vbproj" />
+ <EmbeddedResource Include="resources\WebApplication1.sln" />
+ <EmbeddedResource Include="resources\XNAWindowsProject.csproj" />
+ </ItemGroup>
+ <ItemGroup>
+ <EmbeddedResource Include="resources\cpp-default-library_VS2005.vcproj" />
+ <EmbeddedResource Include="resources\cpp-sample.vcproj" />
+ <EmbeddedResource Include="resources\cpp-sample_VS2005.vcproj" />
+ <EmbeddedResource Include="resources\CPPLibrary.vcproj" />
+ <EmbeddedResource Include="resources\MakeFileProject.vcproj" />
+ <EmbeddedResource Include="resources\Unmanaged.vcproj" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="..\..\CommonAssemblyInfo.cs">
+ <Link>CommonAssemblyInfo.cs</Link>
+ </Compile>
+ <Compile Include="AssemblyListTests.cs" />
+ <Compile Include="CategoryManagerTest.cs" />
+ <Compile Include="CategoryParseTests.cs" />
+ <Compile Include="DomainManagerTests.cs" />
+ <Compile Include="EventDispatcherTests.cs" />
+ <Compile Include="FileWatcherTest.cs" />
+ <Compile Include="MemorySettingsStorageTests.cs" />
+ <Compile Include="MockAssemblyWatcher.cs" />
+ <Compile Include="NUnitProjectLoad.cs" />
+ <Compile Include="NUnitProjectSave.cs" />
+ <Compile Include="NUnitProjectTests.cs" />
+ <Compile Include="NUnitProjectXml.cs" />
+ <Compile Include="NUnitRegistryTests.cs" />
+ <Compile Include="PathUtilTests.cs" />
+ <Compile Include="ProcessRunnerTests.cs" />
+ <Compile Include="ProjectConfigTests.cs" />
+ <Compile Include="RecentFileEntryTests.cs" />
+ <Compile Include="RecentFilesTests.cs" />
+ <Compile Include="RegistrySettingsStorageTests.cs" />
+ <Compile Include="RemoteTestResultTest.cs" />
+ <Compile Include="RuntimeFrameworkSelectorTests.cs" />
+ <Compile Include="ServerUtilityTests.cs" />
+ <Compile Include="ServiceManagerSetUpFixture.cs" />
+ <Compile Include="SettingsGroupTests.cs" />
+ <Compile Include="SummaryResultFixture.cs" />
+ <Compile Include="TestAgencyTests.cs" />
+ <Compile Include="TestAgentTests.cs" />
+ <Compile Include="TestDomainFixture.cs" />
+ <Compile Include="TestDomainTests_Multiple.cs" />
+ <Compile Include="TestEventCatcher.cs" />
+ <Compile Include="TestLoaderAssemblyTests.cs" />
+ <Compile Include="TestLoaderWatcherTests.cs" />
+ <Compile Include="TestRunnerFactoryTests.cs" />
+ <Compile Include="TestServerTests.cs" />
+ <Compile Include="VisualStudioConverterTests.cs" />
+ <Compile Include="VSProjectTests.cs" />
+ <Compile Include="XmlResultWriterTest.cs" />
+ </ItemGroup>
+ <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+ <PropertyGroup>
+ <PreBuildEvent>
+ </PreBuildEvent>
+ <PostBuildEvent>
+ </PostBuildEvent>
+ </PropertyGroup>
</Project>
\ No newline at end of file
=== modified file 'src/ClientUtilities/util/AssemblyWatcher.cs'
--- src/ClientUtilities/util/AssemblyWatcher.cs 2009-04-18 02:24:12 +0000
+++ src/ClientUtilities/util/AssemblyWatcher.cs 2010-09-09 18:41:13 +0000
@@ -6,9 +6,8 @@
using System;
using System.IO;
-using System.Text;
using System.Timers;
-using System.Collections;
+using System.Collections.Generic;
namespace NUnit.Util
{
@@ -20,46 +19,72 @@
/// an argument to the event handler so that one routine can
/// be used to handle events from multiple watchers.
/// </summary>
- public class AssemblyWatcher
+ public class AssemblyWatcher : IAssemblyWatcher
{
- FileSystemWatcher[] fileWatcher;
- FileInfo[] fileInfo;
+ private FileSystemWatcher[] fileWatchers;
+ private FileInfo[] files;
+ private bool isWatching;
protected System.Timers.Timer timer;
- protected string changedAssemblyPath;
-
- public delegate void AssemblyChangedHandler(String fullPath);
- public event AssemblyChangedHandler AssemblyChangedEvent;
-
- public AssemblyWatcher( int delay, string assemblyFileName )
- : this( delay, new string[]{ assemblyFileName } ) { }
-
- public AssemblyWatcher( int delay, IList assemblies )
- {
- fileInfo = new FileInfo[assemblies.Count];
- fileWatcher = new FileSystemWatcher[assemblies.Count];
-
- for( int i = 0; i < assemblies.Count; i++ )
- {
- fileInfo[i] = new FileInfo( (string)assemblies[i] );
-
- fileWatcher[i] = new FileSystemWatcher();
- fileWatcher[i].Path = fileInfo[i].DirectoryName;
- fileWatcher[i].Filter = fileInfo[i].Name;
- fileWatcher[i].NotifyFilter = NotifyFilters.Size | NotifyFilters.LastWrite;
- fileWatcher[i].Changed+=new FileSystemEventHandler(OnChanged);
- fileWatcher[i].EnableRaisingEvents = false;
- }
-
- timer = new System.Timers.Timer( delay );
- timer.AutoReset=false;
- timer.Enabled=false;
- timer.Elapsed+=new ElapsedEventHandler(OnTimer);
- }
-
- public FileInfo GetFileInfo( int index )
- {
- return fileInfo[index];
+ protected string changedAssemblyPath;
+
+ protected FileInfo GetFileInfo(int index)
+ {
+ return files[index];
+ }
+
+ //public AssemblyWatcher( int delay, string assemblyFileName )
+ // : this( delay, new string[]{ assemblyFileName } ) { }
+
+ //public AssemblyWatcher( int delay, IList assemblies )
+ //{
+ // files = new FileInfo[assemblies.Count];
+ // fileWatchers = new FileSystemWatcher[assemblies.Count];
+
+ // for( int i = 0; i < assemblies.Count; i++ )
+ // {
+ // files[i] = new FileInfo( (string)assemblies[i] );
+
+ // fileWatchers[i] = new FileSystemWatcher();
+ // fileWatchers[i].Path = files[i].DirectoryName;
+ // fileWatchers[i].Filter = files[i].Name;
+ // fileWatchers[i].NotifyFilter = NotifyFilters.Size | NotifyFilters.LastWrite;
+ // fileWatchers[i].Changed+=new FileSystemEventHandler(OnChanged);
+ // fileWatchers[i].EnableRaisingEvents = false;
+ // }
+
+ // timer = new System.Timers.Timer( delay );
+ // timer.AutoReset=false;
+ // timer.Enabled=false;
+ // timer.Elapsed+=new ElapsedEventHandler(OnTimer);
+ //}
+
+ public void Setup(int delay, string assemblyFileName)
+ {
+ Setup(delay, new string[] {assemblyFileName});
+ }
+
+ public void Setup(int delay, IList<string> assemblies)
+ {
+ files = new FileInfo[assemblies.Count];
+ fileWatchers = new FileSystemWatcher[assemblies.Count];
+
+ for (int i = 0; i < assemblies.Count; i++)
+ {
+ files[i] = new FileInfo((string)assemblies[i]);
+
+ fileWatchers[i] = new FileSystemWatcher();
+ fileWatchers[i].Path = files[i].DirectoryName;
+ fileWatchers[i].Filter = files[i].Name;
+ fileWatchers[i].NotifyFilter = NotifyFilters.Size | NotifyFilters.LastWrite;
+ fileWatchers[i].Changed += new FileSystemEventHandler(OnChanged);
+ fileWatchers[i].EnableRaisingEvents = false;
+ }
+
+ timer = new System.Timers.Timer(delay);
+ timer.AutoReset = false;
+ timer.Enabled = false;
+ timer.Elapsed += new ElapsedEventHandler(OnTimer);
}
public void Start()
@@ -74,9 +99,45 @@
private void EnableWatchers( bool enable )
{
- foreach( FileSystemWatcher watcher in fileWatcher )
+ if (ReferenceEquals(fileWatchers, null))
+ return;
+
+ foreach( FileSystemWatcher watcher in fileWatchers )
watcher.EnableRaisingEvents = enable;
- }
+
+ isWatching = enable;
+ }
+
+ public void FreeResources()
+ {
+ if (isWatching)
+ {
+ EnableWatchers(false);
+ }
+
+ if (!ReferenceEquals(fileWatchers, null))
+ {
+ foreach (FileSystemWatcher watcher in fileWatchers)
+ {
+ if (ReferenceEquals(watcher, null))
+ continue;
+
+ watcher.Changed -= new FileSystemEventHandler(OnChanged);
+ watcher.Dispose();
+ }
+ }
+
+ if (!ReferenceEquals(timer, null))
+ {
+ timer.Stop();
+ timer.Close();
+ }
+
+ fileWatchers = null;
+ timer = null;
+ }
+
+ public event AssemblyChangedHandler AssemblyChanged;
protected void OnTimer(Object source, ElapsedEventArgs e)
{
@@ -107,8 +168,8 @@
protected void PublishEvent()
{
- if ( AssemblyChangedEvent != null )
- AssemblyChangedEvent( changedAssemblyPath );
+ if ( AssemblyChanged != null )
+ AssemblyChanged( changedAssemblyPath );
}
}
}
\ No newline at end of file
=== added file 'src/ClientUtilities/util/IAssemblyWatcher.cs'
--- src/ClientUtilities/util/IAssemblyWatcher.cs 1970-01-01 00:00:00 +0000
+++ src/ClientUtilities/util/IAssemblyWatcher.cs 2010-09-09 18:41:13 +0000
@@ -0,0 +1,54 @@
+using System;
+using System.Collections.Generic;
+
+namespace NUnit.Util
+{
+ public delegate void AssemblyChangedHandler(string fullPath);
+
+ /// <summary>
+ /// AssemblyWatcher keeps track of one or more assemblies to
+ /// see if they have changed. It incorporates a delayed notification
+ /// and uses a standard event to notify any interested parties
+ /// about the change. The path to the assembly is provided as
+ /// an argument to the event handler so that one routine can
+ /// be used to handle events from multiple watchers.
+ /// </summary>
+ public interface IAssemblyWatcher
+ {
+ /// <summary>
+ /// Stops watching for changes.
+ /// To release resources call FreeResources.
+ /// </summary>
+ void Stop();
+
+ /// <summary>
+ /// Starts watching for assembly changes.
+ /// You need to call Setup before start watching.
+ /// </summary>
+ void Start();
+
+ /// <summary>
+ /// Initializes the watcher with assemblies to observe for changes.
+ /// </summary>
+ /// <param name="delayInMs">The delay in ms.</param>
+ /// <param name="assemblies">The assemblies.</param>
+ void Setup(int delayInMs, IList<string> assemblies);
+
+ /// <summary>
+ /// Initializes the watcher with assemblies to observe for changes.
+ /// </summary>
+ /// <param name="delayInMs">The delay in ms.</param>
+ /// <param name="assemblyFileName">Name of the assembly file.</param>
+ void Setup(int delayInMs, string assemblyFileName);
+
+ /// <summary>
+ /// Releases all resources held by the watcher.
+ /// </summary>
+ void FreeResources();
+
+ /// <summary>
+ /// Occurs when an assembly being watched has changed.
+ /// </summary>
+ event AssemblyChangedHandler AssemblyChanged;
+ }
+}
\ No newline at end of file
=== modified file 'src/ClientUtilities/util/TestLoader.cs'
--- src/ClientUtilities/util/TestLoader.cs 2010-07-22 23:55:39 +0000
+++ src/ClientUtilities/util/TestLoader.cs 2010-09-09 18:41:13 +0000
@@ -8,7 +8,8 @@
{
using System;
using System.IO;
- using System.Collections;
+ using System.Collections;
+ using System.Diagnostics;
using System.Threading;
using System.Configuration;
using NUnit.Core;
@@ -87,8 +88,8 @@
/// <summary>
/// Watcher fires when the assembly changes
- /// </summary>
- private AssemblyWatcher watcher;
+ /// </summary>
+ private IAssemblyWatcher watcher;
/// <summary>
/// Assembly changed during a test and
@@ -116,11 +117,18 @@
public TestLoader()
: this( new TestEventDispatcher() ) { }
- public TestLoader(TestEventDispatcher eventDispatcher )
- {
- this.events = eventDispatcher;
- this.factory = new DefaultTestRunnerFactory();
- AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler( OnUnhandledException );
+ public TestLoader(TestEventDispatcher eventDispatcher)
+ : this(eventDispatcher, new AssemblyWatcher()) { }
+
+ public TestLoader(IAssemblyWatcher assemblyWatcher)
+ : this(new TestEventDispatcher(), assemblyWatcher) { }
+
+ public TestLoader(TestEventDispatcher eventDispatcher, IAssemblyWatcher assemblyWatcher)
+ {
+ this.events = eventDispatcher;
+ this.watcher = assemblyWatcher;
+ this.factory = new DefaultTestRunnerFactory();
+ AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(OnUnhandledException);
}
#endregion
@@ -569,9 +577,12 @@
loadedTest = testRunner.Test;
currentRuntime = framework;
- reloadPending = false;
-
- testProject.HasChangesRequiringReload = false;
+ reloadPending = false;
+
+ if (Services.UserSettings.GetSetting("Options.TestLoader.ReloadOnChange", true))
+ InstallWatcher();
+
+ testProject.HasChangesRequiringReload = false;
events.FireTestReloaded(TestFileName, loadedTest);
log.Info("Reload complete");
@@ -669,10 +680,12 @@
/// </summary>
private void InstallWatcher()
{
- if(watcher!=null) watcher.Stop();
+ Debug.Assert(!ReferenceEquals(watcher, null));
+ watcher.Stop();
+ watcher.FreeResources();
- watcher = new AssemblyWatcher( 1000, TestProject.ActiveConfig.Assemblies.ToArray() );
- watcher.AssemblyChangedEvent += new AssemblyWatcher.AssemblyChangedHandler( OnTestChanged );
+ watcher.Setup(1000, TestProject.ActiveConfig.Assemblies.ToArray());
+ watcher.AssemblyChanged += new AssemblyChangedHandler( OnTestChanged );
watcher.Start();
}
@@ -680,12 +693,10 @@
/// Stop and remove our current watcher object.
/// </summary>
private void RemoveWatcher()
- {
- if ( watcher != null )
- {
- watcher.Stop();
- watcher = null;
- }
+ {
+ Debug.Assert(!ReferenceEquals(watcher, null));
+ watcher.Stop();
+ watcher.FreeResources();
}
private TestPackage MakeTestPackage( string testName )
=== modified file 'src/ClientUtilities/util/nunit.util.build'
--- src/ClientUtilities/util/nunit.util.build 2010-07-22 23:55:39 +0000
+++ src/ClientUtilities/util/nunit.util.build 2010-09-09 18:41:13 +0000
@@ -11,6 +11,7 @@
<include name="CommandLineOptions.cs"/>
<include name="ConsoleWriter.cs"/>
<include name="DefaultTestRunnerFactory.cs"/>
+ <include name="IAssemblyWatcher.cs"/>
<include name="InProcessTestRunnerFactory.cs"/>
<include name="MemorySettingsStorage.cs"/>
<include name="NUnitProject.cs"/>
=== modified file 'src/ClientUtilities/util/nunit.util.dll.csproj'
--- src/ClientUtilities/util/nunit.util.dll.csproj 2010-08-06 18:37:35 +0000
+++ src/ClientUtilities/util/nunit.util.dll.csproj 2010-09-09 18:41:13 +0000
@@ -1,181 +1,182 @@
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
- <PropertyGroup>
- <ProjectType>Local</ProjectType>
- <ProductVersion>9.0.30729</ProductVersion>
- <SchemaVersion>2.0</SchemaVersion>
- <ProjectGuid>{61CE9CE5-943E-44D4-A381-814DC1406767}</ProjectGuid>
- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ApplicationIcon>
- </ApplicationIcon>
- <AssemblyKeyContainerName>
- </AssemblyKeyContainerName>
- <AssemblyName>nunit.util</AssemblyName>
- <AssemblyOriginatorKeyFile>
- </AssemblyOriginatorKeyFile>
- <DefaultClientScript>JScript</DefaultClientScript>
- <DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout>
- <DefaultTargetSchema>IE50</DefaultTargetSchema>
- <DelaySign>false</DelaySign>
- <OutputType>Library</OutputType>
- <RootNamespace>NUnit.Util</RootNamespace>
- <RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
- <StartupObject>
- </StartupObject>
- <FileUpgradeFlags>
- </FileUpgradeFlags>
- <UpgradeBackupLocation>
- </UpgradeBackupLocation>
- <OldToolsVersion>2.0</OldToolsVersion>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
- <OutputPath>..\..\bin\Debug\lib\</OutputPath>
- <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
- <BaseAddress>285212672</BaseAddress>
- <CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
- <ConfigurationOverrideFile>
- </ConfigurationOverrideFile>
- <DefineConstants>TRACE;DEBUG;NET_2_0</DefineConstants>
- <DocumentationFile>
- </DocumentationFile>
- <DebugSymbols>true</DebugSymbols>
- <FileAlignment>4096</FileAlignment>
- <NoStdLib>false</NoStdLib>
- <NoWarn>1699</NoWarn>
- <Optimize>false</Optimize>
- <RegisterForComInterop>false</RegisterForComInterop>
- <RemoveIntegerChecks>false</RemoveIntegerChecks>
- <TreatWarningsAsErrors>false</TreatWarningsAsErrors>
- <WarningLevel>4</WarningLevel>
- <DebugType>full</DebugType>
- <ErrorReport>prompt</ErrorReport>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
- <OutputPath>..\..\bin\Release\lib\</OutputPath>
- <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
- <BaseAddress>285212672</BaseAddress>
- <CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
- <ConfigurationOverrideFile>
- </ConfigurationOverrideFile>
- <DefineConstants>TRACE;NET_2_0</DefineConstants>
- <DocumentationFile>
- </DocumentationFile>
- <DebugSymbols>false</DebugSymbols>
- <FileAlignment>4096</FileAlignment>
- <NoStdLib>false</NoStdLib>
- <NoWarn>1699</NoWarn>
- <Optimize>true</Optimize>
- <RegisterForComInterop>false</RegisterForComInterop>
- <RemoveIntegerChecks>false</RemoveIntegerChecks>
- <TreatWarningsAsErrors>false</TreatWarningsAsErrors>
- <WarningLevel>4</WarningLevel>
- <DebugType>none</DebugType>
- <ErrorReport>prompt</ErrorReport>
- </PropertyGroup>
- <ItemGroup>
- <Reference Include="System">
- <Name>System</Name>
- </Reference>
- <Reference Include="System.configuration" />
- <Reference Include="System.Data">
- <Name>System.Data</Name>
- </Reference>
- <Reference Include="System.Drawing">
- <Name>System.Drawing</Name>
- </Reference>
- <Reference Include="System.Runtime.Remoting">
- <Name>System.Runtime.Remoting</Name>
- </Reference>
- <Reference Include="System.Xml">
- <Name>System.XML</Name>
- </Reference>
- <ProjectReference Include="..\..\NUnitCore\core\nunit.core.dll.csproj">
- <Name>nunit.core.dll</Name>
- <Project>{EBD43A7F-AFCA-4281-BB53-5CDD91F966A3}</Project>
- <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
- <Private>False</Private>
- </ProjectReference>
- <ProjectReference Include="..\..\NUnitCore\interfaces\nunit.core.interfaces.dll.csproj">
- <Name>nunit.core.interfaces.dll</Name>
- <Project>{435428F8-5995-4CE4-8022-93D595A8CC0F}</Project>
- <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
- <Private>False</Private>
- </ProjectReference>
- </ItemGroup>
- <ItemGroup>
- <Compile Include="..\..\CommonAssemblyInfo.cs">
- <Link>CommonAssemblyInfo.cs</Link>
- </Compile>
- <Compile Include="AggregatingTestRunner.cs" />
- <Compile Include="AssemblyInfo.cs" />
- <Compile Include="AssemblyList.cs" />
- <Compile Include="AssemblyWatcher.cs" />
- <Compile Include="CategoryExpression.cs" />
- <Compile Include="CategoryManager.cs" />
- <Compile Include="CommandLineOptions.cs" />
- <Compile Include="ConsoleWriter.cs" />
- <Compile Include="DefaultTestRunnerFactory.cs" />
- <Compile Include="Extensibility\IProjectConverter.cs" />
- <Compile Include="Extensibility\ProjectConverterCollection.cs" />
- <Compile Include="InProcessTestRunnerFactory.cs" />
- <Compile Include="Interfaces\IRuntimeFrameworkSelector.cs" />
- <Compile Include="Interfaces\ISettings.cs" />
- <Compile Include="Interfaces\ITestEvents.cs" />
- <Compile Include="Interfaces\ITestLoader.cs" />
- <Compile Include="Interfaces\ITestRunnerFactory.cs" />
- <Compile Include="MemorySettingsStorage.cs" />
- <Compile Include="NUnitProject.cs" />
- <Compile Include="NUnitRegistry.cs" />
- <Compile Include="PathUtils.cs" />
- <Compile Include="ProcessRunner.cs" />
- <Compile Include="ProjectConfig.cs" />
- <Compile Include="ProjectConfigCollection.cs" />
- <Compile Include="ProjectConverters\VisualStudioConverter.cs" />
- <Compile Include="ProjectFormatException.cs" />
- <Compile Include="RecentFileEntry.cs" />
- <Compile Include="RecentFiles.cs" />
- <Compile Include="RecentFilesCollection.cs" />
- <Compile Include="RegistrySettingsStorage.cs" />
- <Compile Include="RemoteTestAgent.cs" />
- <Compile Include="ResultSummarizer.cs" />
- <Compile Include="RuntimeFrameworkSelector.cs" />
- <Compile Include="ServerBase.cs" />
- <Compile Include="ServerUtilities.cs" />
- <Compile Include="Services.cs" />
- <Compile Include="Services\AddinManager.cs" />
- <Compile Include="Services\AddinRegistry.cs" />
- <Compile Include="Services\DomainManager.cs" />
- <Compile Include="Services\ProjectService.cs" />
- <Compile Include="Services\RecentFilesService.cs" />
- <Compile Include="Services\ServiceManager.cs" />
- <Compile Include="Services\SettingsService.cs" />
- <Compile Include="Services\TestAgency.cs" />
- <Compile Include="SettingsGroup.cs" />
- <Compile Include="SettingsStorage.cs" />
- <Compile Include="StackTraceFilter.cs" />
- <Compile Include="TestDomain.cs" />
- <Compile Include="TestEventArgs.cs" />
- <Compile Include="TestEventDispatcher.cs" />
- <Compile Include="TestExceptionHandler.cs" />
- <Compile Include="TestLoader.cs" />
- <Compile Include="TestObserver.cs" />
- <Compile Include="TestResultItem.cs" />
- <Compile Include="TestServer.cs" />
- <Compile Include="VSProject.cs" />
- <Compile Include="VSProjectConfig.cs" />
- <Compile Include="VSProjectConfigCollection.cs" />
- <Compile Include="XmlResultTransform.cs" />
- <Compile Include="XmlResultWriter.cs" />
- <Compile Include="XmlSettingsStorage.cs" />
- </ItemGroup>
- <ItemGroup>
- <EmbeddedResource Include="Transform.resx" />
- </ItemGroup>
- <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
- <PropertyGroup>
- <PreBuildEvent>
- </PreBuildEvent>
- <PostBuildEvent>
- </PostBuildEvent>
- </PropertyGroup>
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
+ <PropertyGroup>
+ <ProjectType>Local</ProjectType>
+ <ProductVersion>9.0.30729</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{61CE9CE5-943E-44D4-A381-814DC1406767}</ProjectGuid>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ApplicationIcon>
+ </ApplicationIcon>
+ <AssemblyKeyContainerName>
+ </AssemblyKeyContainerName>
+ <AssemblyName>nunit.util</AssemblyName>
+ <AssemblyOriginatorKeyFile>
+ </AssemblyOriginatorKeyFile>
+ <DefaultClientScript>JScript</DefaultClientScript>
+ <DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout>
+ <DefaultTargetSchema>IE50</DefaultTargetSchema>
+ <DelaySign>false</DelaySign>
+ <OutputType>Library</OutputType>
+ <RootNamespace>NUnit.Util</RootNamespace>
+ <RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
+ <StartupObject>
+ </StartupObject>
+ <FileUpgradeFlags>
+ </FileUpgradeFlags>
+ <UpgradeBackupLocation>
+ </UpgradeBackupLocation>
+ <OldToolsVersion>2.0</OldToolsVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <OutputPath>..\..\bin\Debug\lib\</OutputPath>
+ <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
+ <BaseAddress>285212672</BaseAddress>
+ <CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
+ <ConfigurationOverrideFile>
+ </ConfigurationOverrideFile>
+ <DefineConstants>TRACE;DEBUG;NET_2_0</DefineConstants>
+ <DocumentationFile>
+ </DocumentationFile>
+ <DebugSymbols>true</DebugSymbols>
+ <FileAlignment>4096</FileAlignment>
+ <NoStdLib>false</NoStdLib>
+ <NoWarn>1699</NoWarn>
+ <Optimize>false</Optimize>
+ <RegisterForComInterop>false</RegisterForComInterop>
+ <RemoveIntegerChecks>false</RemoveIntegerChecks>
+ <TreatWarningsAsErrors>false</TreatWarningsAsErrors>
+ <WarningLevel>4</WarningLevel>
+ <DebugType>full</DebugType>
+ <ErrorReport>prompt</ErrorReport>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <OutputPath>..\..\bin\Release\lib\</OutputPath>
+ <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
+ <BaseAddress>285212672</BaseAddress>
+ <CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
+ <ConfigurationOverrideFile>
+ </ConfigurationOverrideFile>
+ <DefineConstants>TRACE;NET_2_0</DefineConstants>
+ <DocumentationFile>
+ </DocumentationFile>
+ <DebugSymbols>false</DebugSymbols>
+ <FileAlignment>4096</FileAlignment>
+ <NoStdLib>false</NoStdLib>
+ <NoWarn>1699</NoWarn>
+ <Optimize>true</Optimize>
+ <RegisterForComInterop>false</RegisterForComInterop>
+ <RemoveIntegerChecks>false</RemoveIntegerChecks>
+ <TreatWarningsAsErrors>false</TreatWarningsAsErrors>
+ <WarningLevel>4</WarningLevel>
+ <DebugType>none</DebugType>
+ <ErrorReport>prompt</ErrorReport>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="System">
+ <Name>System</Name>
+ </Reference>
+ <Reference Include="System.configuration" />
+ <Reference Include="System.Data">
+ <Name>System.Data</Name>
+ </Reference>
+ <Reference Include="System.Drawing">
+ <Name>System.Drawing</Name>
+ </Reference>
+ <Reference Include="System.Runtime.Remoting">
+ <Name>System.Runtime.Remoting</Name>
+ </Reference>
+ <Reference Include="System.Xml">
+ <Name>System.XML</Name>
+ </Reference>
+ <ProjectReference Include="..\..\NUnitCore\core\nunit.core.dll.csproj">
+ <Name>nunit.core.dll</Name>
+ <Project>{EBD43A7F-AFCA-4281-BB53-5CDD91F966A3}</Project>
+ <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
+ <Private>False</Private>
+ </ProjectReference>
+ <ProjectReference Include="..\..\NUnitCore\interfaces\nunit.core.interfaces.dll.csproj">
+ <Name>nunit.core.interfaces.dll</Name>
+ <Project>{435428F8-5995-4CE4-8022-93D595A8CC0F}</Project>
+ <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
+ <Private>False</Private>
+ </ProjectReference>
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="..\..\CommonAssemblyInfo.cs">
+ <Link>CommonAssemblyInfo.cs</Link>
+ </Compile>
+ <Compile Include="AggregatingTestRunner.cs" />
+ <Compile Include="AssemblyInfo.cs" />
+ <Compile Include="AssemblyList.cs" />
+ <Compile Include="AssemblyWatcher.cs" />
+ <Compile Include="CategoryExpression.cs" />
+ <Compile Include="CategoryManager.cs" />
+ <Compile Include="CommandLineOptions.cs" />
+ <Compile Include="ConsoleWriter.cs" />
+ <Compile Include="DefaultTestRunnerFactory.cs" />
+ <Compile Include="Extensibility\IProjectConverter.cs" />
+ <Compile Include="Extensibility\ProjectConverterCollection.cs" />
+ <Compile Include="IAssemblyWatcher.cs" />
+ <Compile Include="InProcessTestRunnerFactory.cs" />
+ <Compile Include="Interfaces\IRuntimeFrameworkSelector.cs" />
+ <Compile Include="Interfaces\ISettings.cs" />
+ <Compile Include="Interfaces\ITestEvents.cs" />
+ <Compile Include="Interfaces\ITestLoader.cs" />
+ <Compile Include="Interfaces\ITestRunnerFactory.cs" />
+ <Compile Include="MemorySettingsStorage.cs" />
+ <Compile Include="NUnitProject.cs" />
+ <Compile Include="NUnitRegistry.cs" />
+ <Compile Include="PathUtils.cs" />
+ <Compile Include="ProcessRunner.cs" />
+ <Compile Include="ProjectConfig.cs" />
+ <Compile Include="ProjectConfigCollection.cs" />
+ <Compile Include="ProjectConverters\VisualStudioConverter.cs" />
+ <Compile Include="ProjectFormatException.cs" />
+ <Compile Include="RecentFileEntry.cs" />
+ <Compile Include="RecentFiles.cs" />
+ <Compile Include="RecentFilesCollection.cs" />
+ <Compile Include="RegistrySettingsStorage.cs" />
+ <Compile Include="RemoteTestAgent.cs" />
+ <Compile Include="ResultSummarizer.cs" />
+ <Compile Include="RuntimeFrameworkSelector.cs" />
+ <Compile Include="ServerBase.cs" />
+ <Compile Include="ServerUtilities.cs" />
+ <Compile Include="Services.cs" />
+ <Compile Include="Services\AddinManager.cs" />
+ <Compile Include="Services\AddinRegistry.cs" />
+ <Compile Include="Services\DomainManager.cs" />
+ <Compile Include="Services\ProjectService.cs" />
+ <Compile Include="Services\RecentFilesService.cs" />
+ <Compile Include="Services\ServiceManager.cs" />
+ <Compile Include="Services\SettingsService.cs" />
+ <Compile Include="Services\TestAgency.cs" />
+ <Compile Include="SettingsGroup.cs" />
+ <Compile Include="SettingsStorage.cs" />
+ <Compile Include="StackTraceFilter.cs" />
+ <Compile Include="TestDomain.cs" />
+ <Compile Include="TestEventArgs.cs" />
+ <Compile Include="TestEventDispatcher.cs" />
+ <Compile Include="TestExceptionHandler.cs" />
+ <Compile Include="TestLoader.cs" />
+ <Compile Include="TestObserver.cs" />
+ <Compile Include="TestResultItem.cs" />
+ <Compile Include="TestServer.cs" />
+ <Compile Include="VSProject.cs" />
+ <Compile Include="VSProjectConfig.cs" />
+ <Compile Include="VSProjectConfigCollection.cs" />
+ <Compile Include="XmlResultTransform.cs" />
+ <Compile Include="XmlResultWriter.cs" />
+ <Compile Include="XmlSettingsStorage.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <EmbeddedResource Include="Transform.resx" />
+ </ItemGroup>
+ <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+ <PropertyGroup>
+ <PreBuildEvent>
+ </PreBuildEvent>
+ <PostBuildEvent>
+ </PostBuildEvent>
+ </PropertyGroup>
</Project>
\ No newline at end of file