【问题标题】:Visual Studio: Load SQL file from SQL Studio Unit TestVisual Studio:从 SQL Studio 单元测试加载 SQL 文件
【发布时间】:2019-04-02 18:36:29
【问题描述】:

我正在尝试为我的一些 SQL 查询设置 Microsoft Visual Studio 单元测试环境。我的场景有点倒退到典型的软件开发场景。对于我从事的任何给定工作产品,我都在尝试通过传入不同的参数并比较结果来在不同的场景中执行 ONE 查询。

我的目的是在我的每个单元测试中从 .sql 文件加载我的 SQL 查询。

如何打开我的 SQL 文件以从我的 SqlServerUnitTest1.cs 文件中读取?

【问题讨论】:

  • 这不是您问题的答案,但我强烈建议使用 tSQLt 进行 SQL Server 单元测试。推荐框架在那里进行单元测试。

标签: visual-studio-2013 sql-server-data-tools


【解决方案1】:

解决这个问题很复杂,所以我将描述我所做工作的大致轮廓。其中一些可能是不必要的,但至少我的说明将帮助您了解所有重要步骤:

  1. 创建一个新的解决方案,并在其中创建一个新的单元测试项目。 (如果您像我一样使用 Reporting Services,请在其旁边创建一个 Reporting 项目)
  2. 将查询导入您的测试项目,并将属性设置为“Copy if Newer”或“Always Copy”。
  3. 在您的测试中加载 SQL 文件。我写了一个形式的函数:

.

public static string LoadSqlFile(string name)
{
  string path = Path.Combine( Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)
                            , @"sql\" +  name
                            );

  return File.ReadAllText(path);
}

通过文件名加载 SQL 文件。 这是我具体问题的答案。

  1. 编写测试(使用 UnitTest 模板,而不是 SqlServerUnitTest 模板)。我编写了一些代码来从 JSON 生成测试,这使得我团队中的非 C# 用户更容易做到这一点。在我的用例中,每个测试都有一个未声明的参数,该参数被传递给测试。 JSON 还包含一个预期结果列表,我们将其与结果进行比较。

【讨论】:

    猜你喜欢
    • 2010-09-18
    • 2019-01-19
    • 1970-01-01
    • 2021-03-06
    • 2012-10-18
    • 1970-01-01
    • 2016-10-30
    • 1970-01-01
    相关资源
    最近更新 更多