【问题标题】:TFS Build definition - add step to run DacPac for Unit TestsTFS 构建定义 - 添加步骤以运行 DacPac 进行单元测试
【发布时间】:2026-02-19 05:20:08
【问题描述】:

我们正在使用 Microsoft Visual Studio Team Foundation Server 版本 16.131 的本地安装。

我们有一个开发持续集成构建定义,其中包括在一个非常旧的应用程序上运行一些单元测试。因此,单元测试需要一个数据库来运行(我知道,单元测试不是一个理想的情况......)

构建的工件之一是数据库的 DACPAC。

我想在运行单元测试步骤之前将该 DACPAC 中的任何数据库更改部署为构建定义的一部分。这样,任何依赖于数据库更改而添加/更改的测试都将(希望)通过。

如果可以的话,有什么想法吗?如果可以,我如何在构建定义中从 DACPAC 发布?

【问题讨论】:

  • 如果他们需要数据库,那么他们不是单元测试。它们是集成测试。

标签: sql sql-server unit-testing tfs build


【解决方案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

    【讨论】: