【问题标题】:Unit Test in JenkinsJenkins 中的单元测试
【发布时间】:2017-06-16 17:09:25
【问题描述】:

我已经有一个 SQL Server 数据库和源代码控制“Redgate”,此外我已经将我的项目连接到了 repo Github,并且这个项目也连接到了 Jenkins。

我需要对表进行某种单元测试,就像我已经得到查询一样,测试会将值传递给这个查询,或者其他它是单元测试。

但我需要 Jenkins 来完成。有没有办法做到这一点!?如果是,与 POWERSHELL 有什么关系?

我有点困惑,因为我知道我需要做什么,而且我有工具,但结构对我来说并不清晰。

在何处以及如何进行单元测试,以及如何将其推送给他们在 DB 上开发的每个人。

【问题讨论】:

    标签: sql-server unit-testing powershell jenkins redgate


    【解决方案1】:

    要在数据库中进行单元测试,我推荐tSQLt framework。查看quick start guide 了解如何使用它。

    如果您已经获得了 Redgate 的 SQL 源代码控制的许可证,那么您可能还拥有他们的一些其他产品的许可证 - 他们有一个称为 SQL 测试的产品,这使得在 SQL Server Management Studio 中使用 tSQLt 变得更加容易。

    至于在 Jenkins 中运行单元测试,请检查您是否还拥有 Redgate 的 DLM 自动化产品的许可证 - 它是一组 Powershell cmdlet,可用于自动化数据库持续集成和交付,包括运行任何 tSQLt 单元存在的测试。幸运的是,有一个可用的 Jenkins 插件 - https://plugins.jenkins.io/redgate-sql-ci

    这里还有一些关于如何使用它的好视频 - http://www.red-gate.com/products/dlm/dlm-automation/resources/

    【讨论】:

      【解决方案2】:

      你有几个问题,让我试着解决其中的大部分问题。

      1. 我会使用 Pester Powershell 模块创建一个测试(使用 Invoke-SqlCmd),它将结果输出到 xml,以便 jenkins 可以解析它们。
      2. 您可以使用任何您喜欢的语言进行 db 测试,实际上,就像 Jenkins 可以运行您输入的任何内容,c# 测试、python 测试、powershell 测试等等,这只是个人喜好的问题,哪种语言\堆栈是你会用。
      3. 我不太清楚您的意思是:“如何将其推送给他们在 DB 上开发的每个人”。

      这就是我必须使用 powershell 运行测试并让 jenkins 使用它们:

      $tests = Invoke-Pester -OutputFormat NUnitXml -OutputFile tests.xml -PassThru
      if ($tests.FailedCount -eq 0) { Remove-AzureRmResourceGroup -ResourceGroupName $rgName -Force }
      

      【讨论】:

        猜你喜欢
        • 2012-06-29
        • 2017-03-20
        • 1970-01-01
        • 2011-08-27
        • 1970-01-01
        • 2015-05-06
        • 1970-01-01
        • 2014-09-22
        • 1970-01-01
        相关资源
        最近更新 更多