测试'部署到DB,DAC封装偶尔停止

时间:2018-06-11 21:28:54

标签: c# mstest sql-server-data-tools dac .net-4.7.2

在我的自动化测试(使用Visual Studio 2017的新项目中的MSTest)中,我在每个测试用例运行之前部署了一个新的数据库(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,因此它不应该是任何网络延迟,并且我在任务管理器中检查我的可用内存和CPU,因为测试运行,并且那些没有得到最大化出。重新启动机器,或者只是机器上的SQL Server,似乎无法发挥作用。

到目前为止,似乎增加了它不能超时的几率的一件事是调试测试用例而不是在调试器之外运行它。如果我在调试器中仍然出现超时,我会更新。

我是否在不知不觉中引发某种竞争状态或死锁?

0 个答案:

没有答案