Mar*_*ves 3 c# sql-server integration-testing
我正在使用Respawn清理我的测试数据库,但是当此方法执行时:
public static Task ResetCheckpoint() => Checkpoint.Reset(ConfigurationManager.ConnectionStrings["TestConnection"].ConnectionString);
Run Code Online (Sandbox Code Playgroud)
显示此错误消息:
消息:System.InvalidOperationException:操作无效。连接已关闭。
我已经检查过返回的值 ConfigurationManager.ConnectionStrings["TestConnection"].ConnectionString,它是正确的。
我的集成测试结构基于Jimmy Bogard的这个示例项目:https://github.com/jbogard/ContosoUniversityDotNetCore-Pages,更具体地说,这两个类:
我已经弄清楚了。问题是连接超时。我使用生产数据库中的克隆作为测试数据库,并且有许多表包含大量行,有些表包含数百万个寄存器。因此,我在 SQL Server Management Studio 中手动运行 Respawn 生成的命令,花了 17 分钟才将其全部清除。现在,我将能够使用干净的数据库编写和运行测试,不会出现任何问题。
所以,这里学到的教训是:
Reset,或者将类CommandTimeout的属性设置Checkout为更高的值。我认为 Respawn 可以返回一个更好的信息来说明 中出现的问题Reset,也许我会发送一个 Pull 请求来解决这个问题。
| 归档时间: |
|
| 查看次数: |
2277 次 |
| 最近记录: |