Развертывание тестов в БД с периодическим остановом пакета DAC - PullRequest
0 голосов
/ 12 июня 2018

В моих автоматизированных тестах (MSTest в новом проекте с использованием Visual Studio 2017) я развертываю свежую базу данных перед тем, как каждый тест запускается так (databaseName является случайным и уникальным, и очищается после завершения каждого теста)):

[TestInitialize]
public void ConfigureEmptyDatabase()
{
    var instance = new DacServices(connectionString);

    using (var dacpac = DacPackage.Load(path)) {
        instance.Deploy(dacpac, databaseName, upgradeExisting: true,
            options: new DacDeployOptions{ CreateNewDatabase = true });
    }
}

Казалось бы, наугад строка instance.Deploy(...) остановится на неопределенное время.Я реализовал тайм-аут 60 секунд, поэтому в этом случае мои тесты не пройдены.Когда мои тесты проходят успешно, они обычно занимают 20-40 секунд.

Что может быть причиной этой задержки?Я выполняю развертывание на localhost, поэтому не должно быть никаких задержек в сети, и я проверяю мою доступную память и ЦП в диспетчере задач во время выполнения теста, и они не превышаются.Перезапуск машины или просто SQL Server на машине, похоже, ничего не меняет.

Пока что единственная вещь, которая увеличивает шансы на то, что время не истекает, это отладка тестаcase вместо запуска его вне отладчика.Я уточню, получу ли я тайм-аут в отладчике.

Невольно ли я запускаю какое-то состояние гонки или тупик?

...