Respawn没有重置我的SQL Server数据库

问题描述 投票:2回答:1

我正在使用Respawn来清理我的测试数据库,但是当这个方法执行时:

public static Task ResetCheckpoint() => Checkpoint.Reset(ConfigurationManager.ConnectionStrings["TestConnection"].ConnectionString);

显示以下错误消息:

消息:System.InvalidOperationException:无效的操作。连接已关闭。

我已经检查了ConfigurationManager.ConnectionStrings["TestConnection"].ConnectionString返回的值,这是正确的。

我通过Jimmy Bogardhttps://github.com/jbogard/ContosoUniversityDotNetCore-Pages在这个示例项目中构建了我的集成测试结构,更具体地说,这两个类:

c# sql-server integration-testing
1个回答
2
投票

我已经想到了这一点。问题是连接超时。我正在使用生产数据库中的克隆作为测试数据库,并且有许多表有很多行,有些表有数百万个寄存器。所以我在SQL Server Management Studio中手动运行Respawn生成的命令,花了17分钟清除它们。现在,我将能够使用干净的数据库编写和运行我的测试,没有问题。

所以,这里吸取的教训是:

  • 在运行Respawn Reset之前清除大型数据库,或者将CommandTimeout类的Checkout属性设置为更高的值。

我认为Respawn可以返回更好的信息,告诉Reset出了什么问题,也许我会发送拉动请求来解决这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.