// Copyright (c) Umbraco.
// See LICENSE for more details.
using System.Diagnostics;
using System.Linq;
using Microsoft.Extensions.Configuration;
using NUnit.Framework;
using Umbraco.Cms.Tests.Integration.Implementations;
using Umbraco.Cms.Tests.Integration.Testing;
// ReSharper disable once CheckNamespace
///
/// Global setup and teardown.
///
///
/// This class has NO NAMESPACE so it applies to the whole assembly.
///
[SetUpFixture]
public class GlobalSetupTeardown
{
private Stopwatch _stopwatch;
public static IConfiguration TestConfiguration { get; private set; }
[OneTimeSetUp]
public void SetUp()
{
var builder = new ConfigurationBuilder();
builder.AddJsonFile("appsettings.Tests.json");
builder.AddJsonFile("appsettings.Tests.Local.json", true);
builder.AddEnvironmentVariables();
TestConfiguration = builder.Build();
var testHelper = new TestHelper();
var databaseType =
TestConfiguration.GetValue("Tests:Database:DatabaseType");
var version = testHelper.GetUmbracoVersion().SemanticVersion;
TestContext.Progress.WriteLine(
"******************************************************************************");
TestContext.Progress.WriteLine("* Umbraco.Tests.Integration");
TestContext.Progress.WriteLine("*");
TestContext.Progress.WriteLine($"* DatabaseType : {databaseType}");
TestContext.Progress.WriteLine($"* UmbracoVersion : {version.ToString().Split('+').First()}");
TestContext.Progress.WriteLine($"* WorkingDirectory : {testHelper.WorkingDirectory}");
TestContext.Progress.WriteLine(
"******************************************************************************");
_stopwatch = Stopwatch.StartNew();
}
[OneTimeTearDown]
public void TearDown()
{
BaseTestDatabase.Instance?.TearDown();
Console.WriteLine("TOTAL TESTS DURATION: {0}", _stopwatch.Elapsed);
}
}