Migration is no longer executed per test, its ran once and the db is cloned after that, (faster tests, cleaner logs ;)

This commit is contained in:
kay.one 2011-10-16 19:03:54 -07:00
parent f1248d12c6
commit c55ca42c21
4 changed files with 18 additions and 10 deletions

View File

@ -21,8 +21,7 @@ namespace NzbDrone.Core.Test
{
try
{
LogManager.Configuration =
new XmlLoggingConfiguration(Path.Combine(CentralDispatch.AppPath, "log.config"), false);
LogManager.Configuration = new XmlLoggingConfiguration(Path.Combine(CentralDispatch.AppPath, "log.config"), false);
LogManager.ThrowExceptions = true;
var exceptionVerification = new ExceptionVerification();
@ -35,7 +34,6 @@ namespace NzbDrone.Core.Test
Console.WriteLine("Unable to configure logging. " + e);
}
var filesToDelete = Directory.GetFiles(Directory.GetCurrentDirectory(), "*.sdf", SearchOption.AllDirectories);
foreach (var file in filesToDelete)
{
@ -45,6 +43,8 @@ namespace NzbDrone.Core.Test
}
catch { }
}
MockLib.CreateDataBaseTemplate();
}
}
}

View File

@ -17,20 +17,19 @@ namespace NzbDrone.Core.Test.Framework
/// </summary>
internal static class MockLib
{
public static string[] StandardSeries
{
get { return new[] { "c:\\tv\\the simpsons", "c:\\tv\\family guy", "c:\\tv\\southpark", "c:\\tv\\24" }; }
}
private const string DbTemplateName = "_dbtemplate.sdf";
public static IDatabase GetEmptyDatabase(bool enableLogging = false, string fileName = "")
{
Console.WriteLine("Creating an empty PetaPoco database");
Console.WriteLine("Cloning database from template.");
if (String.IsNullOrWhiteSpace(fileName))
{
fileName = Guid.NewGuid() + ".sdf";
}
File.Copy(DbTemplateName, fileName);
var connectionString = Connection.GetConnectionString(fileName);
var database = Connection.GetPetaPocoDb(connectionString);
@ -38,7 +37,15 @@ namespace NzbDrone.Core.Test.Framework
return database;
}
public static Series GetFakeSeries(int id, string title)
public static void CreateDataBaseTemplate()
{
Console.WriteLine("Creating an empty PetaPoco database");
var connectionString = Connection.GetConnectionString(DbTemplateName);
var database = Connection.GetPetaPocoDb(connectionString);
database.Dispose();
}
public static Series GetFakeSeries(int id, string title)
{
return Builder<Series>.CreateNew()
.With(c => c.SeriesId = id)

View File

@ -15,6 +15,7 @@ using PetaPoco;
namespace NzbDrone.Core.Test
{
[TestFixture]
[Category("Benchmark")]
// ReSharper disable InconsistentNaming
public class DbBenchmark : TestBase
{

View File

@ -20,7 +20,7 @@ namespace NzbDrone.Core.Datastore
EnsureDatabase(connetionString);
Logger.Info("Preparing to run database migration");
Logger.Trace("Preparing to run database migration");
try
{