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

Pr.*_*dor 6 c# sql-server integration-testing visual-studio

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

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

在我的解决方案中,我有.sqlproj所有表和SP.如何使用与C#代码相同的结构创建LocalDB.sqlproj?或者如何生成包含所有对象的脚本以在LocalDB上运行它?

.sqlproj存在MyProjectName_Create.sql的 bin文件夹中,但它没有运行cmd.ExecuteNonQuery();

任何帮助/建议将不胜感激.谢谢

PS相关问题是如何在DacServices.Deploy()中禁用预部署和部署后脚本

小智 1

在 sqlproj 的 build 文件夹中,您还可以找到 [DBName].dacpac 文件。您可以使用 sqlpackage.exe 将 dacpac 部署到 localdb。Ben Day 在这个博客中做了很好的解释。如果无法从命令行直接使用 sqlpackage.exe,则可以在 sql server 安装文件夹中找到它。

\n\n
SqlPackage /Action:Publish \n   /SourceFile:\xe2\x80\x9dBenday.SampleApp.Database.dacpac\xe2\x80\x9d\n   /TargetDatabaseName:BendaySampleAppDb \n   /TargetServerName:\xe2\x80\x9ddemo2012util\xe2\x80\x9d\n
Run Code Online (Sandbox Code Playgroud)\n