使用自动配置的localdb进行单元测试; 我该如何清理?

Ben*_*ins 15 .net sql-server localdb

我已经配置了一个.mdf文件以及一个localdb连接字符串,用于单元测试,如下所示:

<connectionStrings>
        <add name="TestData" providerName="System.Data.SqlClient" connectionString="Data Source=(localdb)\v11.0; AttachDBFilename='|DataDirectory|\TestData.mdf'; Integrated Security=True"/>
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)

一旦我为我的测试正确配置了部署文件,这就可以很好地工作:.mdf的副本附加到LocalDB的默认实例,并且SqlClient连接到它而没有一丝配置.它只是有效.

但是我如何在事后清理?在我的本地方框中,我可以定期使用SSMS手动分离旧的测试数据库,但在CI服务器上,显然最好让单元测试自我清理.

是否有类似的自动方式导致localdb数据库从实例中分离出来?

phi*_*hil 5

这就是我删除 localDB 数据库的方法。我不喜欢的是 .mdf 也被删除了。我通过首先将其复制到 tem 目录并使用该副本创建数据库来克服这个问题。

var sc = new Microsoft.SqlServer.Management.Common.ServerConnection(your localDB SqlConnection here);
var server = new Microsoft.SqlServer.Management.Smo.Server(sc);
server.KillDatabase(dbName here);
Run Code Online (Sandbox Code Playgroud)

希望这对菲尔有帮助