作为TFS Build的一部分执行Database Job

时间:2014-06-16 16:01:58

标签: sql-server tfs msbuild tfs2012 sql-server-data-tools

我有一个请求对我在TFS中进行的数据库部署执行“冒烟测试”。我希望能够在TFS中部署之后执行数据库作业,该作业将用于填充数据。之后,可以运行一些SQL语句,其中包含插入了多少条记录的结果,等等。

我已经研究过使用SSDT的单元测试,但是想知道是否还有其他选择(加上看起来你只能用这种方法启动SPROC)。

非常感谢任何建议。

4 个答案:

答案 0 :(得分:0)

假设您已经有一个SSDT项目,并且您正在使用DACPAC作为构建的一部分进行部署,而您只是想知道如何在部署中包含数据群。我通常做的只是使用一大堆INSERT的后部署脚本(我通常将它分成单独的文件,每个表使用INSERT,然后将其包含在主要的后部署中)脚本使用:r语法)。要生成插入脚本,我通常会使用SSMS中的功能来编写数据库脚本,并在高级选项中告诉它只编写脚本数据,然后将其粘贴到我的部署后脚本中。

答案 1 :(得分:0)

就个人而言,我会使用sqlcmd EXEC任务,但可能(更有可能)这个sqlcmd-msbuild任务。

http://www.msbuildextensionpack.com/help/4.0.5.0/html/3b72c130-7fc9-8b8a-132c-62999e5b1183.htm

您可以拥有INSERT脚本。

您还可以加入一些单元测试' Andy Leonard讨论的方法。

http://www.dotnetrocks.com/default.aspx?showNum=312

答案 2 :(得分:0)

我建议您不要将其作为构建的一部分。

您希望您的构建速度快,如果您需要应用程序的实例,则可能意味着您没有。您应该使用发布管理工具将应用程序部署到环境中,然后在那里运行实例测试。

您可以使用RM for Visual Studio 2013来创建执行此操作的发布管道。这些工具包含用于创建和更新数据库的拖放元素。

http://nakedalm.com/building-release-pipeline-release-management-visual-studio-2013/

答案 3 :(得分:0)

您考虑过tSQLt了吗? tSQLt是开源的,可能是最常用的SQL Server单元测试框架。要正确使用它,您需要在测试中插入数据(INSERT)。这是处理测试设置的一种特别狡猾的方式,因为tSQLt在测试运行后回滚事务,将测试环境恢复到已知状态。