Exemple #1
0
 /// <summary>
 /// Executes all the EF data context migrations against the configured database
 /// </summary>
 private void EnsureMigrations(DbTestRunnerConfiguration config, IDbTestRunnerContext context, DbInitializationResult result)
 {
     try
     {
         using (var scope = context.ServiceProvider.CreateScope())
         {
             var migrationRunner = scope.ServiceProvider.GetService <DataMigrationRunner>();
             migrationRunner.ApplyMigrations(config.DataContextType);
             result.Logs.Add("DB Migrations completed.");
             result.IsSuccessful = true;
         }
     }
     catch (Exception e)
     {
         result.Logs.Add($"Encountered exception running migrations. Exception: {e.Message} Details: {e}");
         throw;
     }
 }
Exemple #2
0
        protected override void InitializeSchemaAndData(IDbTestRunnerConfiguration config, IDbTestRunnerContext context, DbInitializationResult result)
        {
            if (!(config is DbTestRunnerConfiguration adoConfig))
            {
                result.IsSuccessful = false;
                result.Logs.Add($"Failed to initialize schema and database.  Configuration is not of the expected type. Expected: {typeof(DbTestRunnerConfiguration).FullName} actual: {config.GetType().FullName}");
                return;
            }

            var connStr = this.ProduceConnectionString(config, context.DbName);

            if (string.IsNullOrEmpty(connStr))
            {
                result.IsSuccessful = false;
                result.Logs.Add("Failed to initialize schema and database.  Configuration string is empty or null.");
                return;
            }

            result.Logs.Add($"Attempting to initialize DB Schema and Data using connection string: {connStr}");
            result.IsSuccessful = adoConfig.InitializeDbSchemaAndData(connStr, result.WasDatabaseCreated);
        }
Exemple #3
0
        protected override void InitializeSchemaAndData(IDbTestRunnerConfiguration config, IDbTestRunnerContext context, DbInitializationResult result)
        {
            if (!(config is DbTestRunnerConfiguration efConfig))
            {
                result.IsSuccessful = false;
                result.Logs.Add($"Failed to initialize schema and database.  Configuration is not of the expected type. Expected: {typeof(DbTestRunnerConfiguration).FullName} actual: {config.GetType().FullName}");
                return;
            }

            result.Logs.Add($"Preparing Database with {efConfig.DataContextType} migrations.");
            EnsureMigrations(efConfig, context, result);
        }