【发布时间】:2012-09-05 02:04:19
【问题描述】:
我已经配置了一个 .mdf 文件以及一个用于单元测试的 localdb 连接字符串,如下所示:
<connectionStrings>
<add name="TestData" providerName="System.Data.SqlClient" connectionString="Data Source=(localdb)\v11.0; AttachDBFilename='|DataDirectory|\TestData.mdf'; Integrated Security=True"/>
</connectionStrings>
一旦我为我的测试正确配置了部署文件,它就可以很好地工作:.mdf 的副本附加到 LocalDB 的默认实例,SqlClient 无需任何配置即可连接到它。它只是工作。
但是之后我该如何清理呢?在我的本地机器上,我可以定期使用 SSMS 手动分离旧的测试数据库,但在 CI 服务器上,显然最好让单元测试自行清理。
是否有类似的自动方法使 localdb 数据库从实例中分离出来?
【问题讨论】:
-
为什么不模拟你的依赖并创建一个真正的单元测试呢?就目前而言,您所拥有的是集成测试。
-
@DanielMann 无可否认,但它的接近程度可以接受。我只是没有时间为数据库构建一个真正的模拟。
-
有没有人为此想出一个可靠的解决方案?我想使用 localdb 进行集成测试,但事实证明,基于 localDB 可以附加数据库但不能分离它的愚蠢方式,这非常困难。
-
在不投入大量时间的情况下,使用某些技术(例如实体框架)进行模拟的价值是有限的。
标签: .net sql-server localdb