问题标签 [tsqlt]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
239 浏览

sql-server - 使用 tSQLt 断言 MSSQL 存储过程执行时间

我想创建 SQL 单元测试来测量我的存储过程的执行时间。有没有办法断言每次执行的持续时间?

我最终使用的解决方案:

--运行我的存储过程

--获取指标

--朗姆我的断言基于last_elapsed_timeavg_elapsed_time

0 投票
1 回答
190 浏览

unit-testing - tsqlt 可以与并行数据仓库一起使用吗?

看到需要启用 CLR 功能才能使用 tsqlt。我可以在 PDW 中实际使用它吗?

或任何其他方式或工具来对 PDW 执行单元测试?

谢谢,

0 投票
1 回答
316 浏览

sql-server - 可能导致 tSQLt 出现问题的 SQL 功能

我们正在考虑使用 tSQLt 进行 SQL Server 单元测试,但在这样做之前,我们需要了解我们是否会浪费时间尝试使用我们的设置。我问这个的原因是因为我们有两个数据库,其中一个非常“正常”(这是我们的生产数据库),另一个是“API”数据库,它通过“翻转”的存储过程提供对该数据库的受限访问" 在您访问 API 数据库的用户帐户和生产数据库的模拟帐户之间。生产数据库中的表不是直接访问的,而是通过同义词访问的。事务提供来自 API 数据库中的“入口点”存储过程。

我们希望能够测试两个主要的东西;

(1) 对象的安全权限,因为当我们“忘记”在构建之间正确设置安全访问权限时,我们在使用共享对象时可能会遇到问题。

(2) API 存储过程/函数。我认为我们可以相对独立地测试一些功能,但我看不到存储过程如何轻松工作。

  • tSQLt 是否支持安全权限测试?
  • 我看到跨数据库测试和同义词存在问题,但信息非常具有历史意义。这些现在解决了吗?
  • 为什么 tSQLt 需要 CLR 权限?
  • tSQLt“代码”是否必须安装在要测试的数据库上,还是我们可以在同一实例上的数据库上运行它?
  • 项目清单
0 投票
1 回答
940 浏览

sql-server - 测试在调用者的临时表上运行的存储过程

我一直在尽力遵循http://www.sommarskog.se/share_data.html和 tSQLt 文档中的智慧;试图保持我的存储过程轻巧且相对不复杂,以便它们易于测试。因此,我发现自己在主存储过程中创建了一个临时表,然后在从主存储过程调用的“辅助”存储过程中对该临时表进行操作。这工作得很好,但事实证明测试起来有点尴尬。

在单独测试“辅助”存储过程时,临时表必须已经存在。看起来在[Set Up]过程中创建临时表不会持续到单元测试,但创建一个完整的表会。

因此,为了避免CREATE TABLE #temp在每个单元测试中重复(及其完整的列定义),我正在做以下的变体:

有没有更好的方法来协调 tSQLt 与通过临时表在存储过程之间共享数据?

0 投票
2 回答
585 浏览

sql - tSQLt 如何判断表是否已伪造

我刚刚开始为我的数据库创建一些单元测试。

如果我伪造了一张桌子,

我可以检查它是否被伪造?

请注意,可以在此处找到有关 FakeTable SP 的文档。

动机

我希望能够做到这一点,因为我想象创建几个存储过程来填充这些伪造的表,以便我可以执行测试。但是我不想处理伪造存储过程中的表(所以我可以多次调用它们,每次输入不同的信息)。

我不想在添加数据之前忘记伪造表格(因为几乎肯定会导致我的测试失败)。

0 投票
0 回答
82 浏览

sql-server - tSQLt 如何判断我的 SP 是否在测试环境事务中运行?

我为数据库中的不同对象创建了几个“构造函数”。这些构造函数将伪造创建这些对象时所需的任何表。

不幸的是,我只是在测试框架之外(以及在事务之外)运行了这些构造函数之一,并且只需要追踪重命名的表来恢复它。

无论如何我可以确保存储过程在 tSQLt 事务中运行?

(我知道我可以检查我是否在使用的任何事务中,@@TRANSCOUNT但想专门检查它是否是 tSQLt 事务)。

谢谢。

0 投票
0 回答
545 浏览

sql-server - Jenkins 中的 TSQLt 测试

我正在尝试编写我的第一个 TSQLt 测试。我试图使用 Jenkins 对其进行测试,由于某种原因,当我在 MS SQL Studio 上运行它时测试通过了,但是当我试图让 Jenkins 自动运行测试时,我得到一个错误:

和詹金斯的错误:

我只是想比较计数是否为 91,我希望它通过测试。

0 投票
1 回答
183 浏览

sql-server - 雷德盖特和詹金斯

我在我的 SQL Server 上安装了 Redgate,同时我在 Jenkins 上安装了它的插件。

我使用 Redgate SQL Test 为 SQL Server 编写了一些测试,我正在尝试在 Jenkins 上运行这些测试。但问题是 Jenkins 获取了 db 架构但无法访问数据。该测试有一个从表中选择的数据计数,Jenkins 似乎看不到它,它无法比较结果。

因此测试在 Jenkins 中失败。

我尝试使用 SQL 数据生成器并让插件从中读取。它确实有效,但我需要使用我的真实数据。

任何想法如何做到这一点!?

0 投票
1 回答
435 浏览

sql-server - TSQLT 过程从另一个过程调用假表

我正在尝试做一些 Tsqlt 测试,我想将我的数据与测试分开。

所以我有一个带有数据的程序:

我还有另一个程序,我想在其中使用假表:

我需要第一个过程 [Test_Calss].[test Data_Test] 中的假表在第二个过程中被调用和测试。我尝试使用 EXEC,但它没有用。

任何想法如何调用表格及其内容?

0 投票
2 回答
1001 浏览

unit-testing - 如何对 Sql Server 2014 的数据库代码进行单元测试

我正在为 Sql Server 2014 中的 db 代码开发单元测试框架。我的要求如下:

  • 该工具应提供足够的断言来检查数据库模式、正值、负值、异常和约束。
  • 该工具应该为数据库存储过程提供模拟和存根
  • 该工具应该能够为通过/失败的测试用例生成 .TRX 报告,因为我想使用 VSTS/TFS 构建发布这些报告
  • 如果可能的话,代码覆盖率
  • 该工具应该能够与用于 CI 目的的 TFS 构建模板集成。

在做了一些研究之后,我认为借助带有 MSTest 和 tSqlT 的 SSDT 工具,我有三个选择:

  • 使用 SSDT 进行测试数据库初始化/清理,使用 MsTest 进行 Sql 单元测试,但它没有模拟功能,并且断言选项也有限。清理也是手动的
  • 将 tSqlT 用于单元测试用例。它是一个不错且功能强大的工具,但它不提供像 SSDT 这样的 GUI。redGate GUI 是付费的,这在我的情况下是不可能的。此外,将它与 TFS 构建集成似乎更难。这不会生成 .TRX 格式的报告,而是生成 .XML 格式的报告。
  • 使用 SSDT 和 tSqlT 的组合作为 SSDT 进行数据库初始化、TFS 集成和运行来自 MSTest 项目的 tSqlT 代码和用于数据库单元测试的 tSqlT。

任何人都可以提出更好的数据库单元测试方法吗?

谢谢