创建LocalDB以便从Visual Studio SQL项目进行测试

我正在尝试为我的项目创建集成测试。 我需要测试一个通过存储库调用存储过程的控制器。 应在每个特定测试范围的运行中创建一个空数据库。 所以我将实现以下步骤:

  1. 创建LocalDB
  2. 运行一些预脚本(添加测试数据)
  3. 运行测试
  4. 运行一些Post脚本(如果需要在此数据库上运行其他测试)
  5. 删除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”