创建LocalDB以便从Visual Studio SQL项目进行测试
我正在尝试为我的项目创建集成测试。 我需要测试一个通过存储库调用存储过程的控制器。 应在每个特定测试范围的运行中创建一个空数据库。 所以我将实现以下步骤:
- 创建LocalDB
- 运行一些预脚本(添加测试数据)
- 运行测试
- 运行一些Post脚本(如果需要在此数据库上运行其他测试)
- 删除LocalDB
在我的解决方案中,我有.sqlproj
与所有表和SP。 如何使用与C#代码中的.sqlproj
相同的结构创建LocalDB ? 或者如何生成包含所有对象的脚本以在LocalDB上运行它?
在.sqlproj
bin文件夹中存在MyProjectName_Create.sql,但它不在cmd.ExecuteNonQuery();
运行cmd.ExecuteNonQuery();
任何帮助/建议将不胜感激。 谢谢
PS相关问题是如何在DacServices.Deploy()中禁用预部署和部署后脚本
在sqlproj的build文件夹中,您还可以找到[DBName] .dacpac文件。 您可以使用sqlpackage.exe将dacpac部署到localdb。 Ben Day在这个博客中解释得非常好。 如果sqlpackage.exe无法从命令行直接获得,则可以在sql server安装文件夹中找到它。
SqlPackage /Action:Publish /SourceFile:”Benday.SampleApp.Database.dacpac” /TargetDatabaseName:BendaySampleAppDb /TargetServerName:”demo2012util”