【问题标题】:committing both live code and tsqlt tests提交实时代码和 tsqlt 测试
【发布时间】:2021-08-04 23:49:18
【问题描述】:

我的公司最近开始使用 tSQLt 来测试我们的代码库。我们已经构建了一些很好的测试套件,现在我们正在尝试找出提交它们的最佳方式。

我们使用带有 Redgate 的 SQL 服务器将我们的实时代码提交到 github.com 存储库。

我们想到的一个选择是将 tSQLt 脚本与我们的实时代码一起提交到同一个存储库中,但我们认为这不是最佳选择。这意味着我们的测试代码将/可以上传到实时服务器。

另一种选择是将 tSQLt 脚本提交到第二个存储库。此解决方案将代码分开,但开销更大。当我们的开发人员想要运行测试用例时,他们必须首先将实时代码拉入他们的开发数据库,​​然后将 tSQLt 代码拉入他们的数据库。此外,当开发人员创建新的实时代码并进行相应的 tSQLt 测试时,他们记得将实时代码和测试代码推送到适当的存储库。似乎需要做很多额外的工作。

有人遇到过这个问题吗?你是怎么解决的?提交测试代码时是否有最佳实践?

谢谢!!

【问题讨论】:

    标签: sql git-commit tsqlt


    【解决方案1】:

    最佳做法是将测试和代码保存在同一个存储库中。让 CI 管道为代码(没有测试)创建一个工件,并为测试创建一个单独的工件。然后将两者与 tSQLt 本身一起部署到 CI 环境并运行测试。 如果测试通过,您可以发送代码工件以在下游环境中使用。

    【讨论】:

    • 我们还没有 CI 管道 - 我们通过应用 github 实时分支手动更新。在实时分支上使用 git ignore 删除测试和 tSQLt install sps 等是个好主意吗?
    • @JensFrandsen,如果您在这里提出新问题,您会得到更多答案。很少有人回顾旧问题。 --- 你应该在构建中处理测试和代码的分离,而不是使用 git hacks。 --- 此外,测试是产品的重要组成部分,即使您没有将它们部署到生产环境中。因此,它们绝对应该是您在 github 中的主要分支的一部分。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-11
    • 1970-01-01
    • 1970-01-01
    • 2017-10-30
    • 1970-01-01
    • 2016-06-07
    相关资源
    最近更新 更多