Implemented basic unittest structure instead of wrapping it inside the CommandLine project
This commit is contained in:
@@ -61,6 +61,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Duplicati.Service", "Duplic
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Duplicati.Library.Backend.AzureBlob", "Duplicati\Library\Backend\AzureBlob\Duplicati.Library.Backend.AzureBlob.csproj", "{8E4CECFB-0413-4B00-AB93-78D1C3902BD5}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Duplicati.UnitTest", "Duplicati\UnitTest\Duplicati.UnitTest.csproj", "{ECB63D1C-1724-442D-9228-DEABF14F2EA3}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
@@ -230,6 +232,12 @@ Global
|
||||
{E93F3DE2-FF3A-4709-96A3-8190AA14FA25}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{E93F3DE2-FF3A-4709-96A3-8190AA14FA25}.Test|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{E93F3DE2-FF3A-4709-96A3-8190AA14FA25}.Test|Any CPU.Build.0 = Debug|Any CPU
|
||||
{ECB63D1C-1724-442D-9228-DEABF14F2EA3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{ECB63D1C-1724-442D-9228-DEABF14F2EA3}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{ECB63D1C-1724-442D-9228-DEABF14F2EA3}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{ECB63D1C-1724-442D-9228-DEABF14F2EA3}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{ECB63D1C-1724-442D-9228-DEABF14F2EA3}.Test|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{ECB63D1C-1724-442D-9228-DEABF14F2EA3}.Test|Any CPU.Build.0 = Debug|Any CPU
|
||||
{F61679A9-E5DE-468A-B5A4-05F92D0143D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{F61679A9-E5DE-468A-B5A4-05F92D0143D2}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{F61679A9-E5DE-468A-B5A4-05F92D0143D2}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
|
||||
@@ -29,7 +29,6 @@
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Commandlineparameters>UNITTEST ~/testdata/DSMCBE/r50 ~/testdata/DSMCBE/r100 ~/testdata/DSMCBE/r150 --no-encryption --debug-output</Commandlineparameters>
|
||||
<EnvironmentVariables>
|
||||
<EnvironmentVariables>
|
||||
<Variable name="AUTOUPDATER_Duplicati_SKIP_UPDATE" value="1" />
|
||||
@@ -57,7 +56,6 @@
|
||||
<Compile Include="Help.cs" />
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="UnitTest.cs" />
|
||||
<Compile Include="Commands.cs" />
|
||||
<Compile Include="ConsoleOutput.cs" />
|
||||
<Compile Include="Strings.cs" />
|
||||
|
||||
@@ -110,28 +110,6 @@ namespace Duplicati.CommandLine
|
||||
);
|
||||
}
|
||||
|
||||
#if DEBUG
|
||||
if (cargs.Count > 1 && cargs[0].ToLower() == "unittest")
|
||||
{
|
||||
//The unit test is only enabled in DEBUG builds
|
||||
//it works by getting a list of folders, and treats them as
|
||||
//if they have the same data, but on different times
|
||||
|
||||
//The first folder is used to make a full backup,
|
||||
//and each subsequent folder is used to make an incremental backup
|
||||
|
||||
//After all backups are made, the files are restored and verified against
|
||||
//the original folders.
|
||||
|
||||
//The best way to test it, is to use SVN checkouts at different
|
||||
//revisions, as this is how a regular folder would evolve
|
||||
|
||||
cargs.RemoveAt(0);
|
||||
UnitTest.RunTest(cargs.ToArray(), options);
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (cargs.Count == 1 && string.Equals(cargs[0], "changelog", StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
var path = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location), "changelog.txt");
|
||||
|
||||
@@ -0,0 +1,168 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>8.0.30703</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{ECB63D1C-1724-442D-9228-DEABF14F2EA3}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<RootNamespace>Duplicati.UnitTest</RootNamespace>
|
||||
<AssemblyName>Duplicati.UnitTest</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug</OutputPath>
|
||||
<DefineConstants>DEBUG;</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<ConsolePause>false</ConsolePause>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release</OutputPath>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<ConsolePause>false</ConsolePause>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="nunit.framework">
|
||||
<HintPath>..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="SVNCheckoutsTest.cs" />
|
||||
<Compile Include="GeneralBlackBoxTesting.cs" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
<ItemGroup>
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\CommandLine\Duplicati.CommandLine.csproj">
|
||||
<Project>{81765A64-3661-4E3E-B850-2F6F87A51F74}</Project>
|
||||
<Name>Duplicati.CommandLine</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\CommandLine\BackendTester\Duplicati.CommandLine.BackendTester.csproj">
|
||||
<Project>{E7280DCA-7776-4A73-B9B5-41FD77FC8799}</Project>
|
||||
<Name>Duplicati.CommandLine.BackendTester</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\CommandLine\BackendTool\Duplicati.CommandLine.BackendTool.csproj">
|
||||
<Project>{2AF960C0-357D-4D44-A3D5-8B6E89DB0F11}</Project>
|
||||
<Name>Duplicati.CommandLine.BackendTool</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\GUI\Duplicati.GUI.TrayIcon\Duplicati.GUI.TrayIcon.csproj">
|
||||
<Project>{17566860-3D98-4604-AA5B-47661F75609F}</Project>
|
||||
<Name>Duplicati.GUI.TrayIcon</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Library\AutoUpdater\Duplicati.Library.AutoUpdater.csproj">
|
||||
<Project>{7E119745-1F62-43F0-936C-F312A1912C0B}</Project>
|
||||
<Name>Duplicati.Library.AutoUpdater</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Library\Backend\AzureBlob\Duplicati.Library.Backend.AzureBlob.csproj">
|
||||
<Project>{8E4CECFB-0413-4B00-AB93-78D1C3902BD5}</Project>
|
||||
<Name>Duplicati.Library.Backend.AzureBlob</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Library\Backend\CloudFiles\Duplicati.Library.Backend.CloudFiles.csproj">
|
||||
<Project>{1BFAE226-8364-4086-825C-BB83F6F3EE4C}</Project>
|
||||
<Name>Duplicati.Library.Backend.CloudFiles</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Library\Backend\File\Duplicati.Library.Backend.File.csproj">
|
||||
<Project>{FC9B7611-836F-4127-8B44-A7C31F506807}</Project>
|
||||
<Name>Duplicati.Library.Backend.File</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Library\Backend\FTP\Duplicati.Library.Backend.FTP.csproj">
|
||||
<Project>{F61679A9-E5DE-468A-B5A4-05F92D0143D2}</Project>
|
||||
<Name>Duplicati.Library.Backend.FTP</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Library\Backend\GoogleDocs\Duplicati.Library.Backend.GoogleDocs.csproj">
|
||||
<Project>{42C91180-11EB-4590-82EA-80FE9D4DEBEC}</Project>
|
||||
<Name>Duplicati.Library.Backend.GoogleDocs</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Library\Backend\OneDrive\Duplicati.Library.Backend.OneDrive.csproj">
|
||||
<Project>{CCD76347-7DC7-4B42-B7E1-E500E624CAC3}</Project>
|
||||
<Name>Duplicati.Library.Backend.OneDrive</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Library\Backend\S3\Duplicati.Library.Backend.S3.csproj">
|
||||
<Project>{C03F6DFD-805A-4BE0-9338-64870ADDB4A2}</Project>
|
||||
<Name>Duplicati.Library.Backend.S3</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Library\Backend\SSHv2\Duplicati.Library.Backend.SSHv2.csproj">
|
||||
<Project>{FF2BF37C-E502-4C98-BEA0-701671DDFA08}</Project>
|
||||
<Name>Duplicati.Library.Backend.SSHv2</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Library\Backend\TahoeLAFS\Duplicati.Library.Backend.TahoeLAFS.csproj">
|
||||
<Project>{C0270709-2A40-43B5-8CF1-69581B9FA2A1}</Project>
|
||||
<Name>Duplicati.Library.Backend.TahoeLAFS</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Library\Backend\WEBDAV\Duplicati.Library.Backend.WEBDAV.csproj">
|
||||
<Project>{BAE27510-8B5D-44B2-B33E-372A98908041}</Project>
|
||||
<Name>Duplicati.Library.Backend.WEBDAV</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Library\Compression\Duplicati.Library.Compression.csproj">
|
||||
<Project>{19ECCE09-B5EB-406C-8C57-BAC66997D469}</Project>
|
||||
<Name>Duplicati.Library.Compression</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Library\DynamicLoader\Duplicati.Library.DynamicLoader.csproj">
|
||||
<Project>{0CA86ECF-5BEC-4909-B4F6-110A03B30B92}</Project>
|
||||
<Name>Duplicati.Library.DynamicLoader</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Library\Encryption\Duplicati.Library.Encryption.csproj">
|
||||
<Project>{94484FDB-2EFA-4CF0-9BE6-A561157B4F87}</Project>
|
||||
<Name>Duplicati.Library.Encryption</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Library\Interface\Duplicati.Library.Interface.csproj">
|
||||
<Project>{C5899F45-B0FF-483C-9D38-24A9FCAAB237}</Project>
|
||||
<Name>Duplicati.Library.Interface</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Library\Localization\Duplicati.Library.Localization.csproj">
|
||||
<Project>{B68F2214-951F-4F78-8488-66E1ED3F50BF}</Project>
|
||||
<Name>Duplicati.Library.Localization</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Library\Logging\Duplicati.Library.Logging.csproj">
|
||||
<Project>{D10A5FC0-11B4-4E70-86AA-8AEA52BD9798}</Project>
|
||||
<Name>Duplicati.Library.Logging</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Library\Modules\Builtin\Duplicati.Library.Modules.Builtin.csproj">
|
||||
<Project>{52826615-7964-47FE-B4B3-1B2DBDF605B9}</Project>
|
||||
<Name>Duplicati.Library.Modules.Builtin</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Library\Main\Duplicati.Library.Main.csproj">
|
||||
<Project>{10D2D1B7-C664-41D8-9B3A-00040C3D421B}</Project>
|
||||
<Name>Duplicati.Library.Main</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Library\Snapshots\Duplicati.Library.Snapshots.csproj">
|
||||
<Project>{D63E53E4-A458-4C2F-914D-92F715F58ACE}</Project>
|
||||
<Name>Duplicati.Library.Snapshots</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Library\SQLiteHelper\Duplicati.Library.SQLiteHelper.csproj">
|
||||
<Project>{2C838169-B187-4B09-8768-1C24C2521C8D}</Project>
|
||||
<Name>Duplicati.Library.SQLiteHelper</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Library\Utility\Duplicati.Library.Utility.csproj">
|
||||
<Project>{DE3E5D4C-51AB-4E5E-BEE8-E636CEBFBA65}</Project>
|
||||
<Name>Duplicati.Library.Utility</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\License\Duplicati.License.csproj">
|
||||
<Project>{4D012CB1-4B92-47F4-89B7-BF80A73A2E99}</Project>
|
||||
<Name>Duplicati.License</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Server\Duplicati.Server.csproj">
|
||||
<Project>{19E661D2-C5DA-4F35-B3EE-7586E5734B5F}</Project>
|
||||
<Name>Duplicati.Server</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Service\Duplicati.Service.csproj">
|
||||
<Project>{E93F3DE2-FF3A-4709-96A3-8190AA14FA25}</Project>
|
||||
<Name>Duplicati.Service</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Server\Duplicati.Server.Serialization\Duplicati.Server.Serialization.csproj">
|
||||
<Project>{33FD1D24-C28F-4C71-933F-98F1586EA76C}</Project>
|
||||
<Name>Duplicati.Server.Serialization</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,30 @@
|
||||
// Copyright (C) 2015, The Duplicati Team
|
||||
|
||||
// http://www.duplicati.com, info@duplicati.com
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU Lesser General Public License as
|
||||
// published by the Free Software Foundation; either version 2.1 of the
|
||||
// License, or (at your option) any later version.
|
||||
//
|
||||
// This library is distributed in the hope that it will be useful, but
|
||||
// WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
using NUnit.Framework;
|
||||
using System.Linq;
|
||||
using System.IO;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Duplicati.UnitTest
|
||||
{
|
||||
[TestFixture()]
|
||||
public class GeneralBlackBoxTesting
|
||||
{
|
||||
private const string SOURCE_FOLDERS = "~/testdata/DSMCBE";
|
||||
|
||||
@@ -16,9 +16,10 @@
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
//
|
||||
#endregion
|
||||
using NUnit.Framework;
|
||||
|
||||
#if DEBUG
|
||||
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -27,12 +28,12 @@ using Duplicati.Library.Logging;
|
||||
using Duplicati.Library.Utility;
|
||||
using System.Linq;
|
||||
|
||||
namespace Duplicati.CommandLine
|
||||
namespace Duplicati.UnitTest
|
||||
{
|
||||
/// <summary>
|
||||
/// This class encapsulates a simple method for testing the correctness of duplicati.
|
||||
/// </summary>
|
||||
public class UnitTest
|
||||
public class SVNCheckoutTest
|
||||
{
|
||||
/// <summary>
|
||||
/// A helper class to write debug messages to the log file
|
||||
@@ -196,8 +197,8 @@ namespace Duplicati.CommandLine
|
||||
tmp["allow-full-removal"] = "";
|
||||
|
||||
using (new Timer("Cleaning up any existing backups"))
|
||||
using(var i = new Duplicati.Library.Main.Controller(target, tmp, new ConsoleOutput(options)))
|
||||
i.Delete();
|
||||
using(var i = new Duplicati.Library.Main.Controller(target, tmp, new CommandLine.ConsoleOutput(options)))
|
||||
i.Delete();
|
||||
}
|
||||
|
||||
log.Backupset = "Backup " + folders[0];
|
||||
@@ -244,7 +245,7 @@ namespace Duplicati.CommandLine
|
||||
}
|
||||
|
||||
IList<DateTime> entries;
|
||||
using(var i = new Duplicati.Library.Main.Controller(target, options, new ConsoleOutput(options)))
|
||||
using(var i = new Duplicati.Library.Main.Controller(target, options, new CommandLine.ConsoleOutput(options)))
|
||||
entries = (from n in i.List().Filesets select n.Time.ToLocalTime()).ToList();
|
||||
|
||||
if (entries.Count != folders.Length)
|
||||
@@ -276,7 +277,7 @@ namespace Duplicati.CommandLine
|
||||
using (new Timer("Extract list of files from" + folders[i]))
|
||||
{
|
||||
List<string> sourcefiles;
|
||||
using(var inst = new Library.Main.Controller(target, options, new ConsoleOutput(options)))
|
||||
using(var inst = new Library.Main.Controller(target, options, new CommandLine.ConsoleOutput(options)))
|
||||
sourcefiles = (from n in inst.List("*").Files select n.Path).ToList();
|
||||
|
||||
//Remove all folders from list
|
||||
@@ -453,8 +454,8 @@ namespace Duplicati.CommandLine
|
||||
{
|
||||
Console.WriteLine("Backing up the copy: " + sourcename);
|
||||
using (new Timer("Backup of " + sourcename))
|
||||
using(var i = new Duplicati.Library.Main.Controller(target, options, new ConsoleOutput(options)))
|
||||
Log.WriteMessage(i.Backup(source.Split(System.IO.Path.PathSeparator)).ToString(), LogMessageType.Information);
|
||||
using(var i = new Duplicati.Library.Main.Controller(target, options, new CommandLine.ConsoleOutput(options)))
|
||||
Log.WriteMessage(i.Backup(source.Split(System.IO.Path.PathSeparator)).ToString(), LogMessageType.Information);
|
||||
}
|
||||
|
||||
private static void RunRestore(string source, string target, string tempfolder, Dictionary<string, string> options)
|
||||
@@ -462,8 +463,8 @@ namespace Duplicati.CommandLine
|
||||
var tops = new Dictionary<string, string>(options);
|
||||
tops["restore-path"] = tempfolder;
|
||||
using (new Timer("Restore of " + source))
|
||||
using(var i = new Duplicati.Library.Main.Controller(target, tops, new ConsoleOutput(options)))
|
||||
Log.WriteMessage(i.Restore(null).ToString(), LogMessageType.Information);
|
||||
using(var i = new Duplicati.Library.Main.Controller(target, tops, new CommandLine.ConsoleOutput(options)))
|
||||
Log.WriteMessage(i.Restore(null).ToString(), LogMessageType.Information);
|
||||
}
|
||||
|
||||
private static void RunPartialRestore(string source, string target, string tempfolder, Dictionary<string, string> options, string[] files)
|
||||
@@ -471,8 +472,8 @@ namespace Duplicati.CommandLine
|
||||
var tops = new Dictionary<string, string>(options);
|
||||
tops["restore-path"] = tempfolder;
|
||||
using (new Timer("Partial restore of " + source))
|
||||
using(var i = new Duplicati.Library.Main.Controller(target, tops, new ConsoleOutput(options)))
|
||||
Log.WriteMessage(i.Restore(files).ToString(), LogMessageType.Information);
|
||||
using(var i = new Duplicati.Library.Main.Controller(target, tops, new CommandLine.ConsoleOutput(options)))
|
||||
Log.WriteMessage(i.Restore(files).ToString(), LogMessageType.Information);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -630,6 +631,4 @@ namespace Duplicati.CommandLine
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="NUnit" version="2.6.4" targetFramework="net45" />
|
||||
</packages>
|
||||
Reference in New Issue
Block a user