【发布时间】:2018-08-29 19:03:44
【问题描述】:
我正在使用Respawn 清理我的测试数据库,但是当此方法执行时:
public static Task ResetCheckpoint() => Checkpoint.Reset(ConfigurationManager.ConnectionStrings["TestConnection"].ConnectionString);
显示此错误消息:
消息:System.InvalidOperationException:无效操作。连接已关闭。
我已经检查了ConfigurationManager.ConnectionStrings["TestConnection"].ConnectionString返回的值,是正确的。
我在这个示例项目中的集成测试结构基于Jimmy Bogard:https://github.com/jbogard/ContosoUniversityDotNetCore-Pages,更具体地说,这两个类:
【问题讨论】:
-
您链接的页面上的示例使用
await显示C#。我猜这都是用于异步任务的。也许这是你的问题?像这样:await checkpoint.Reset("MyConnectionStringName"); -
SliceFeature的方法和我的实现一模一样:public static Task ResetCheckpoint() => _checkpoint.Reset(_configuration.GetConnectionString("DefaultConnection"));
-
此调用中没有等待
-
但它是异步的,是吗?
-
是的,它是异步的。我已经弄清楚了,请参阅下面的答案。
标签: c# sql-server integration-testing