SQL 使用 VSTS 实现服务器单元测试自动化 - 团队服务
SQL Server unit test automation with VSTS - Team Services
我正在使用 SQL 服务器、SSDT、GIT 和 VSTS 实施数据库持续集成过程,我对它也很陌生,所以这里是:
我已经可以在我的本地计算机上进行开发,使用 "Publish" 和 "Schema Compare" 功能将 Visual Studio 数据库项目与我的本地数据库同步。
我还能够在每次 "Push" 操作时触发 VSTS 中的构建定义,这将构建然后触发发布到 QA 环境。
现在我正在尝试在构建后自动进行一些单元测试 运行s,尽管当构建定义 运行s 时,它无法在构建 VM SQL 服务器实例中找到任何数据库(每次 运行 构建定义时创建的 VM)...
所以我需要以某种方式将我的数据库模式应用到它,这样它就可以 运行 通过构建定义中的 "Visual Studio Test" 任务进行自动化测试。
我想这应该类似于 "Publish" 功能,或者我应该尝试使用 PowerShell 脚本部署 .dacpac 文件?
但我不知道如何配置文章 "Test integration with the build" 部分中的第 4 步 "Use "数据库同步“任务”。
请问有人做过吗?
您可以使用SQL 服务器单元测试(运行 测试到Visual Studio 测试任务)来验证数据库并且可以在测试前部署数据库。更多信息,您可以参考:Verifying Database Code by Using SQL Server Unit Tests.
另一方面,您可以使用 Deploy SQL Dacpac Deployment group task or Azure SQL Database Deployment.
部署 SQL 服务器数据库
好的!所以,我可以让它像我期待的那样工作......你只需要使用带有参数的 MSBUILD 任务来发布数据库,如下所示:
/t:Build;Publish /p:SqlPublishProfilePath=your_publish_profile.xml
在您的 publish_profile 文件中,您必须指向 VSTS 内虚拟机中的 SQL 服务器实例。因此,我在我的 VCS 中为开发人员保留了一个指向 localhost 的发布配置文件版本,另一个单独的文件指向 VSTS“ (localdb)\MSSQLLocalDB ”。数据库的名称无关紧要,因为它会使用您配置的名称创建一个新数据库。
然后您只需添加 "Visual Studio Test" 任务,瞧!
请注意有关测试的一件事:它将指向 VSTS 中的默认构建目录,即变量 $(Build.SourcesDirectory)
中的目录
我看到有些人使用构建参数“/p:OutDir”来获取 .dacpac 文件,以便稍后使用 "Copy file" 任务获取 Artifacts 文件夹。
但是如果你这样做,你还必须更改 "Visual Studio Task" 目录,所以我建议简单地将 "Copy File" 任务源指向 $(Build.SourcesDirectory)。然后让 "Visual Studio Test" 任务的默认值 运行 正常。
我正在使用 SQL 服务器、SSDT、GIT 和 VSTS 实施数据库持续集成过程,我对它也很陌生,所以这里是:
我已经可以在我的本地计算机上进行开发,使用 "Publish" 和 "Schema Compare" 功能将 Visual Studio 数据库项目与我的本地数据库同步。
我还能够在每次 "Push" 操作时触发 VSTS 中的构建定义,这将构建然后触发发布到 QA 环境。 现在我正在尝试在构建后自动进行一些单元测试 运行s,尽管当构建定义 运行s 时,它无法在构建 VM SQL 服务器实例中找到任何数据库(每次 运行 构建定义时创建的 VM)...
所以我需要以某种方式将我的数据库模式应用到它,这样它就可以 运行 通过构建定义中的 "Visual Studio Test" 任务进行自动化测试。 我想这应该类似于 "Publish" 功能,或者我应该尝试使用 PowerShell 脚本部署 .dacpac 文件?
但我不知道如何配置文章 "Test integration with the build" 部分中的第 4 步 "Use "数据库同步“任务”。
请问有人做过吗?
您可以使用SQL 服务器单元测试(运行 测试到Visual Studio 测试任务)来验证数据库并且可以在测试前部署数据库。更多信息,您可以参考:Verifying Database Code by Using SQL Server Unit Tests.
另一方面,您可以使用 Deploy SQL Dacpac Deployment group task or Azure SQL Database Deployment.
部署 SQL 服务器数据库好的!所以,我可以让它像我期待的那样工作......你只需要使用带有参数的 MSBUILD 任务来发布数据库,如下所示:
/t:Build;Publish /p:SqlPublishProfilePath=your_publish_profile.xml
在您的 publish_profile 文件中,您必须指向 VSTS 内虚拟机中的 SQL 服务器实例。因此,我在我的 VCS 中为开发人员保留了一个指向 localhost 的发布配置文件版本,另一个单独的文件指向 VSTS“ (localdb)\MSSQLLocalDB ”。数据库的名称无关紧要,因为它会使用您配置的名称创建一个新数据库。
然后您只需添加 "Visual Studio Test" 任务,瞧!
请注意有关测试的一件事:它将指向 VSTS 中的默认构建目录,即变量 $(Build.SourcesDirectory)
中的目录我看到有些人使用构建参数“/p:OutDir”来获取 .dacpac 文件,以便稍后使用 "Copy file" 任务获取 Artifacts 文件夹。
但是如果你这样做,你还必须更改 "Visual Studio Task" 目录,所以我建议简单地将 "Copy File" 任务源指向 $(Build.SourcesDirectory)。然后让 "Visual Studio Test" 任务的默认值 运行 正常。