public async Task RunBeforeAnyTests() { TestContext.Progress.WriteLine(isTestingEnv); _config = new ConfigurationBuilder() .AddJsonFile("appsettings.json") .AddJsonFile("appsettings.Integration.json") .Build(); if (!bool.TryParse(isTestingEnv, out var result) || !result) { UpdateConfig("mongodb://127.0.0.1:27017"); _dockerClient = new DockerClientConfiguration( // TODO: This needs to be configurable in order to execute tests in CI new Uri("npipe://./pipe/docker_engine")) .CreateClient(); DockerContainerBase.CleanupOrphanedContainers(_dockerClient).Wait(30000); _mongoContainer = new MongoContainer(); await _mongoContainer.Start(_dockerClient); } else { UpdateConfig("mongodb://127.0.0.1:27018"); } _factory = new IntegrationTestsApplicationFactory <TestStartup>(); Client = _factory.CreateClient(); }
public async Task <(string, DbConnection)> StartAsync() { var dockerUri = IDatabaseController.GetDockerUri(); _dockerClient = new DockerClientConfiguration( new Uri(dockerUri)) .CreateClient(); DockerContainerBase.CleanupOrphanedContainersAsync(_dockerClient).Wait(Timeout * 500); _sqlServerContainer = new SqlServerContainer(Port, Password); await _sqlServerContainer.StartAsync(_dockerClient, Timeout); var connectionString = _sqlServerContainer.GetConnectionString(DatabaseName); //TODO: use logger Console.WriteLine($"*** SQL Server database started and the connection string is: \"{connectionString}\""); var connection = new SqlConnection(connectionString); return(connectionString, connection); }