[Order(1)] //Тесты с указанным порядком выполняются раннее других. Нужно для сравнения обновленных баз с чистой установкой. public void CreateCurrentNewBaseTest(SqlServer server) { StartSqlServer(server); //Создаем чистую базу var creator = new TestingCreateDbController(server); var success = creator.StartCreation(ScriptsConfiguration.MakeCreationScript(), currentDdName); Assert.That(success, Is.True); }
public void ApplyUpdatesTest(SqlServer server, DbSample sample) { var updateConfiguration = ScriptsConfiguration.MakeUpdateConfiguration(); //Проверяем нужно ли обновлять if (!updateConfiguration.GetHopsToLast(sample.TypedVersion).Any()) { Assert.Ignore($"Образец базы {sample} версии пропущен. Так как версию базы {sample.Version} невозможно обновить."); } //Создаем чистую базу StartSqlServer(server); var creator = new TestingCreateDbController(server); var success = creator.StartCreation(sample); Assert.That(success, Is.True); //Выполняем обновление var builder = server.ConnectionStringBuilder; builder.Database = sample.DbName; var connectionstring = builder.GetConnectionString(true); using (var connection = new MySqlConnection(connectionstring)) { connection.Open(); foreach (var hop in updateConfiguration.GetHopsToLast(sample.TypedVersion)) { TestContext.Progress.WriteLine($"Выполняем скрипт {hop.Source.VersionToShortString()} → {hop.Destination.VersionToShortString()}"); RunOneUpdate(connection, hop); } //Версии баз до 2.5 отличаются не принципиально, например порядком индексов, //Это не имеет смысл специально исправлять. Поэтому проверка этих версия пропущена. if (sample.TypedVersion >= new Version(2, 5)) { ComparisonSchema(connection, currentDdName, sample.DbName); } } }