From 9774744991308748d7b53d56274ee7caa0fed830 Mon Sep 17 00:00:00 2001 From: Shannon Date: Fri, 15 Nov 2013 16:00:48 +1100 Subject: [PATCH] should knock off a few minutes for running tests. --- .../Services/EntityServiceTests.cs | 40 +++++++++++------ .../TestHelpers/BaseDatabaseFactoryTest.cs | 44 ++++++++++++------- .../TestHelpers/BaseUmbracoApplicationTest.cs | 26 ++++++----- .../BaseUmbracoConfigurationTest.cs | 23 +++++++--- src/Umbraco.Tests/TestHelpers/TestHelper.cs | 36 +++++++-------- src/Umbraco.Tests/unit-test-log4net.config | 9 +++- 6 files changed, 112 insertions(+), 66 deletions(-) diff --git a/src/Umbraco.Tests/Services/EntityServiceTests.cs b/src/Umbraco.Tests/Services/EntityServiceTests.cs index c6bf01245a..cc2316c349 100644 --- a/src/Umbraco.Tests/Services/EntityServiceTests.cs +++ b/src/Umbraco.Tests/Services/EntityServiceTests.cs @@ -3,6 +3,7 @@ using System.Linq; using NUnit.Framework; using Umbraco.Core; using Umbraco.Core.Models; +using Umbraco.Tests.TestHelpers; using Umbraco.Tests.TestHelpers.Entities; namespace Umbraco.Tests.Services @@ -25,6 +26,11 @@ namespace Umbraco.Tests.Services base.TearDown(); } + protected override DatabaseBehavior DatabaseTestBehavior + { + get { return DatabaseBehavior.NewSchemaPerFixture; } + } + [Test] public void EntityService_Can_Find_All_Content_By_UmbracoObjectTypes() { @@ -136,24 +142,32 @@ namespace Umbraco.Tests.Services y => y.PropertyEditorAlias == Constants.PropertyEditors.UploadFieldAlias)), Is.True); } + private static bool _isSetup = false; + public override void CreateTestData() { - base.CreateTestData(); + if (_isSetup == false) + { + _isSetup = true; - //Create and Save folder-Media -> 1050 - var folderMediaType = ServiceContext.ContentTypeService.GetMediaType(1031); - var folder = MockedMedia.CreateMediaFolder(folderMediaType, -1); - ServiceContext.MediaService.Save(folder, 0); + base.CreateTestData(); - //Create and Save image-Media -> 1051 - var imageMediaType = ServiceContext.ContentTypeService.GetMediaType(1032); - var image = MockedMedia.CreateMediaImage(imageMediaType, folder.Id); - ServiceContext.MediaService.Save(image, 0); + //Create and Save folder-Media -> 1050 + var folderMediaType = ServiceContext.ContentTypeService.GetMediaType(1031); + var folder = MockedMedia.CreateMediaFolder(folderMediaType, -1); + ServiceContext.MediaService.Save(folder, 0); - //Create and Save file-Media -> 1052 - var fileMediaType = ServiceContext.ContentTypeService.GetMediaType(1033); - var file = MockedMedia.CreateMediaFile(fileMediaType, folder.Id); - ServiceContext.MediaService.Save(file, 0); + //Create and Save image-Media -> 1051 + var imageMediaType = ServiceContext.ContentTypeService.GetMediaType(1032); + var image = MockedMedia.CreateMediaImage(imageMediaType, folder.Id); + ServiceContext.MediaService.Save(image, 0); + + //Create and Save file-Media -> 1052 + var fileMediaType = ServiceContext.ContentTypeService.GetMediaType(1033); + var file = MockedMedia.CreateMediaFile(fileMediaType, folder.Id); + ServiceContext.MediaService.Save(file, 0); + } + } } } \ No newline at end of file diff --git a/src/Umbraco.Tests/TestHelpers/BaseDatabaseFactoryTest.cs b/src/Umbraco.Tests/TestHelpers/BaseDatabaseFactoryTest.cs index c0bc7a5c79..7c918008c3 100644 --- a/src/Umbraco.Tests/TestHelpers/BaseDatabaseFactoryTest.cs +++ b/src/Umbraco.Tests/TestHelpers/BaseDatabaseFactoryTest.cs @@ -55,10 +55,10 @@ namespace Umbraco.Tests.TestHelpers public override void Initialize() { InitializeFirstRunFlags(); - + var path = TestHelper.CurrentAssemblyDirectory; AppDomain.CurrentDomain.SetData("DataDirectory", path); - + //disable cache var cacheHelper = CacheHelper.CreateDisabledCacheHelper(); @@ -67,25 +67,35 @@ namespace Umbraco.Tests.TestHelpers GetDbProviderName()); _appContext = new ApplicationContext( - //assign the db context - new DatabaseContext(dbFactory), - //assign the service context - new ServiceContext(new PetaPocoUnitOfWorkProvider(dbFactory), new FileUnitOfWorkProvider(), new PublishingStrategy(), cacheHelper), - cacheHelper) - { - IsReady = true - }; + //assign the db context + new DatabaseContext(dbFactory), + //assign the service context + new ServiceContext(new PetaPocoUnitOfWorkProvider(dbFactory), new FileUnitOfWorkProvider(), new PublishingStrategy(), cacheHelper), + cacheHelper) + { + IsReady = true + }; base.Initialize(); - DatabaseContext.Initialize(dbFactory.ProviderName, dbFactory.ConnectionString); + using (DisposableTimer.TraceDuration("init")) + { + using (DisposableTimer.TraceDuration("DatabaseContext.Initialize")) + { + DatabaseContext.Initialize(dbFactory.ProviderName, dbFactory.ConnectionString); + } + using (DisposableTimer.TraceDuration("CreateSqlCeDatabase")) + { + CreateSqlCeDatabase(); + } + using (DisposableTimer.TraceDuration("InitializeDatabase")) + { + InitializeDatabase(); + } - CreateSqlCeDatabase(); - - InitializeDatabase(); - - //ensure the configuration matches the current version for tests - SettingsForTests.ConfigurationStatus = UmbracoVersion.Current.ToString(3); + //ensure the configuration matches the current version for tests + SettingsForTests.ConfigurationStatus = UmbracoVersion.Current.ToString(3); + } } protected override void SetupApplicationContext() diff --git a/src/Umbraco.Tests/TestHelpers/BaseUmbracoApplicationTest.cs b/src/Umbraco.Tests/TestHelpers/BaseUmbracoApplicationTest.cs index 490ab33751..d03511cc00 100644 --- a/src/Umbraco.Tests/TestHelpers/BaseUmbracoApplicationTest.cs +++ b/src/Umbraco.Tests/TestHelpers/BaseUmbracoApplicationTest.cs @@ -28,17 +28,23 @@ namespace Umbraco.Tests.TestHelpers { base.Initialize(); - TestHelper.InitializeContentDirectories(); - TestHelper.EnsureUmbracoSettingsConfig(); + using (DisposableTimer.TraceDuration("init")) + { + TestHelper.InitializeContentDirectories(); + //TestHelper.EnsureUmbracoSettingsConfig(); + + //Create the legacy prop-eds mapping + LegacyPropertyEditorIdToAliasConverter.CreateMappingsForCoreEditors(); + + SetupPluginManager(); + + SetupApplicationContext(); + + InitializeMappers(); + + FreezeResolution(); + } - //Create the legacy prop-eds mapping - LegacyPropertyEditorIdToAliasConverter.CreateMappingsForCoreEditors(); - - SetupPluginManager(); - SetupApplicationContext(); - InitializeMappers(); - - FreezeResolution(); } [TearDown] diff --git a/src/Umbraco.Tests/TestHelpers/BaseUmbracoConfigurationTest.cs b/src/Umbraco.Tests/TestHelpers/BaseUmbracoConfigurationTest.cs index b5524cad0f..64769511b0 100644 --- a/src/Umbraco.Tests/TestHelpers/BaseUmbracoConfigurationTest.cs +++ b/src/Umbraco.Tests/TestHelpers/BaseUmbracoConfigurationTest.cs @@ -1,4 +1,5 @@ using NUnit.Framework; +using Umbraco.Core; using Umbraco.Core.Configuration.UmbracoSettings; namespace Umbraco.Tests.TestHelpers @@ -9,17 +10,25 @@ namespace Umbraco.Tests.TestHelpers [TestFixture] public abstract class BaseUmbracoConfigurationTest { + [TestFixtureSetUp] + public void InitializeFixture() + { + TestHelper.SetupLog4NetForTests(); + } + [SetUp] public virtual void Initialize() { - TestHelper.SetupLog4NetForTests(); + using (DisposableTimer.TraceDuration < BaseUmbracoConfigurationTest>("init")) + { + //mock the Umbraco settings that we need + var settings = SettingsForTests.GetMockSettings(); + //sets the global singleton to use the mocked format + SettingsForTests.ConfigureSettings(settings); + //set our local variable for tests to use (preferably) + UmbracoSettings = settings; + } - //mock the Umbraco settings that we need - var settings = SettingsForTests.GetMockSettings(); - //sets the global singleton to use the mocked format - SettingsForTests.ConfigureSettings(settings); - //set our local variable for tests to use (preferably) - UmbracoSettings = settings; } [TearDown] diff --git a/src/Umbraco.Tests/TestHelpers/TestHelper.cs b/src/Umbraco.Tests/TestHelpers/TestHelper.cs index ae28f50b6b..e9bee8a2a1 100644 --- a/src/Umbraco.Tests/TestHelpers/TestHelper.cs +++ b/src/Umbraco.Tests/TestHelpers/TestHelper.cs @@ -113,27 +113,27 @@ namespace Umbraco.Tests.TestHelpers } } - //TODO: With the new config updates, I'm pretty sure this isn't needed? - public static void EnsureUmbracoSettingsConfig() - { - var currDir = new DirectoryInfo(CurrentAssemblyDirectory); + ////TODO: With the new config updates, I'm pretty sure this isn't needed? + //public static void EnsureUmbracoSettingsConfig() + //{ + // var currDir = new DirectoryInfo(CurrentAssemblyDirectory); - var configPath = Path.Combine(currDir.Parent.Parent.FullName, "config"); - if (Directory.Exists(configPath) == false) - Directory.CreateDirectory(configPath); + // var configPath = Path.Combine(currDir.Parent.Parent.FullName, "config"); + // if (Directory.Exists(configPath) == false) + // Directory.CreateDirectory(configPath); - var umbracoSettingsFile = Path.Combine(currDir.Parent.Parent.FullName, "config", "umbracoSettings.config"); - if (File.Exists(umbracoSettingsFile) == false) - File.Copy( - currDir.Parent.Parent.Parent.GetDirectories("Umbraco.Web.UI") - .First() - .GetDirectories("config").First() - .GetFiles("umbracoSettings.Release.config").First().FullName, - Path.Combine(currDir.Parent.Parent.FullName, "config", "umbracoSettings.config"), - true); + // var umbracoSettingsFile = Path.Combine(currDir.Parent.Parent.FullName, "config", "umbracoSettings.config"); + // if (File.Exists(umbracoSettingsFile) == false) + // File.Copy( + // currDir.Parent.Parent.Parent.GetDirectories("Umbraco.Web.UI") + // .First() + // .GetDirectories("config").First() + // .GetFiles("umbracoSettings.Release.config").First().FullName, + // Path.Combine(currDir.Parent.Parent.FullName, "config", "umbracoSettings.config"), + // true); - //Core.Configuration.LegacyUmbracoSettings.SettingsFilePath = IOHelper.MapPath(SystemDirectories.Config + Path.DirectorySeparatorChar, false); - } + // //Core.Configuration.LegacyUmbracoSettings.SettingsFilePath = IOHelper.MapPath(SystemDirectories.Config + Path.DirectorySeparatorChar, false); + //} public static void CleanUmbracoSettingsConfig() { diff --git a/src/Umbraco.Tests/unit-test-log4net.config b/src/Umbraco.Tests/unit-test-log4net.config index 0922e4d932..1b4fc414e2 100644 --- a/src/Umbraco.Tests/unit-test-log4net.config +++ b/src/Umbraco.Tests/unit-test-log4net.config @@ -14,7 +14,14 @@ - + + + + + + + +