Visual studio 使用VST的SQL Server单元测试自动化-团队服务

Visual studio 使用VST的SQL Server单元测试自动化-团队服务,visual-studio,unit-testing,automated-tests,azure-devops,tfsbuild,Visual Studio,Unit Testing,Automated Tests,Azure Devops,Tfsbuild,我正在使用SQL Server、SSDT、GIT和VSTS实现一个数据库连续集成过程,我对它也很陌生,所以这里是: 我已经可以在本地计算机上进行开发,使用“发布”和“模式比较”功能将VisualStudio数据库项目与本地数据库同步 我还能够在每次“推送”操作时触发VST中的构建定义,该定义将构建并触发对QA环境的发布。 现在,我尝试在构建之后放置一些自动运行的单元测试,尽管当构建定义运行时,它在构建VM SQL Server实例(每次运行构建定义时创建的VM)中找不到任何数据库 因此,我需要以

我正在使用SQL Server、SSDT、GIT和VSTS实现一个数据库连续集成过程,我对它也很陌生,所以这里是:

我已经可以在本地计算机上进行开发,使用“发布”和“模式比较”功能将VisualStudio数据库项目与本地数据库同步

我还能够在每次“推送”操作时触发VST中的构建定义,该定义将构建并触发对QA环境的发布。 现在,我尝试在构建之后放置一些自动运行的单元测试,尽管当构建定义运行时,它在构建VM SQL Server实例(每次运行构建定义时创建的VM)中找不到任何数据库

因此,我需要以某种方式将我的数据库模式应用于它,这样它就可以通过构建定义中的“VisualStudioTest”任务运行自动测试。 我想这应该类似于“发布”功能,还是应该尝试使用PowerShell脚本部署.dacpac文件

我已尝试遵循本教程:

但我不知道如何在本文的“测试与构建集成”部分中配置步骤4“使用”数据库同步“任务”


请,以前有人这样做过吗?

您可以使用SQL Server单元测试(通过Visual Studio测试任务运行测试)来验证数据库,并且可以在测试之前部署数据库。有关详细信息,请参阅:


另一方面,您可以使用或部署SQL Server数据库。

好吧!所以,我可以让它像我期望的那样工作。。。只需将MSBUILD任务与参数一起使用,即可按如下方式发布数据库:

/t:构建;Publish/p:SqlPublishProfilePath=your_Publish_profile.xml

在publish_概要文件中,必须指向VSTS内VM中的SQL Server实例。因此,我为在VCS中指向localhost的开发人员保留了一个发布配置文件的版本,另一个单独的发布配置文件指向VST“(localdb)\MSSQLLocalDB”。数据库的名称无关紧要,因为它将使用您配置的名称创建一个新的数据库

然后您只需要添加“VisualStudio测试”任务,瞧

请注意关于测试的一点:它将指向VSTS中的默认构建目录,即变量$(Build.SourcesDirectory)中的目录

我看到一些人使用build参数“/p:OutDir”获取.dacpac文件,然后使用“复制文件”任务获取Artifacts文件夹


但是,如果这样做,还必须更改“VisualStudio任务”目录,因此我建议只需将“复制文件”任务源指向$(Build.SourcesDirectory)。然后让“Visual Studio测试”任务以其默认值正常运行。

是!如果我想在任何其他服务器上运行测试,这将是合适的。。。。不过,我一直在进一步研究,如何在VSTS中的Build VM中将数据库发布到sql server实例。。。我看到实例名是(localdb)\MSSQLLocalDB。因此,我试图通过传递以下参数的MSBUILD任务发布它:/t:Build;Publish/p:SqlPublishProfilePath=your_Publish_profile.xml,然后将Visual Studio测试任务指向同一连接。。不过,我仍在努力让它发挥作用。我稍后会带着消息回来。@EduardoAlvesLisboa请随意在这里发布结果或问题。