TFS 构建定义 - 添加步骤以运行 DacPac 进行单元测试
Posted
技术标签:
【中文标题】TFS 构建定义 - 添加步骤以运行 DacPac 进行单元测试【英文标题】:TFS Build definition - add step to run DacPac for Unit Tests 【发布时间】:2020-06-09 18:12:18 【问题描述】:我们正在使用 Microsoft Visual Studio Team Foundation Server 版本 16.131 的本地安装。
我们有一个开发持续集成构建定义,其中包括在一个非常旧的应用程序上运行一些单元测试。因此,单元测试需要一个数据库来运行(我知道,单元测试不是一个理想的情况......)
构建的工件之一是数据库的 DACPAC。
我想在运行单元测试步骤之前将该 DACPAC 中的任何数据库更改部署为构建定义的一部分。这样,任何依赖于数据库更改而添加/更改的测试都将(希望)通过。
如果可以的话,有什么想法吗?如果可以,我如何在构建定义中从 DACPAC 发布?
【问题讨论】:
如果他们需要数据库,那么他们不是单元测试。它们是集成测试。 【参考方案1】:我们正在构建/发布管道中使用 PowerShell 步骤。 在 powershell 脚本中,您将调用 SqlPackage:
&"C:\Program Files\Microsoft SQL Server\140\DAC\bin\SqlPackage.exe" /Action:Publish /SourceFile:"Dacpac_Artifact\DACPAC\DB.dacpac" /Profile:"Dacpac_Artifact\DACPAC\FileWithPublishPrife.publish.xml"
【讨论】:
【参考方案2】:您还可以查看这个 Microsoft DevLabs 任务,它还包含一个远程部署 dacpac 的子任务,因此您可以部署到另一台机器(如果需要,也可以使用 localhost 部署在构建服务器本身上)。还有其他市场任务,您可以只使用 navigate to the store 并输入 sql,您会看到一打。
IIS Web App Deployment Using WinRM
【讨论】:
以上是关于TFS 构建定义 - 添加步骤以运行 DacPac 进行单元测试的主要内容,如果未能解决你的问题,请参考以下文章
如何为 Windows Azure Web 角色上的 PHP 项目配置 TFS 构建定义以实现持续集成?