问题标签 [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 回答
532 浏览

unit-testing - tSQLt - 如何对错误代码块中的代码进行单元测试

我正在尝试实现一个 UnitTest 来测试我们将数据记录在一个也会引发异常的代码块中:

所以代码看起来像这样:

我想在我处理错误的过程中测试将错误插入到 ErrorLog 中。所以我写了这样的测试:

当我按照上述执行此测试时,它会在 proc 中报告错误并且不执行 Assert。如果我包含 tSQLt.ExpectException,它会传递异常,但不会对 ErrorLog 结果执行 AssertEquals。

有没有办法解决这个问题?

0 投票
3 回答
1538 浏览

visual-studio - 将 tSQLt 公开为 NUnit 测试

有没有办法在 Visual Studio 中以类似于 NUnit 的方式公开 tSQLt 测试?

更好的是,解决方案中的所有测试都可以使用 Resharper 运行

...我知道 Red Gates SQL Test 产品,但它似乎只针对 SSMS

0 投票
3 回答
2239 浏览

sql-server - TSQLT 从存储过程返回结果

在 TSQLT 中,我试图从存储过程返回一个结果并将其添加到一个变量中,以便我可以断言它是否与我的预期结果匹配。

我已经看到了大量从函数返回结果的示例,但没有看到调用存储过程的示例。

有没有人可以分享的例子?

提前致谢

0 投票
4 回答
463 浏览

redgate - 如何重命名 tSQLt 测试类?

我正在使用Red Gate SQL Developer工具开发数据库。SQL Test是运行 tSQLt 测试的 SSMS 插件,缺少重命名测试类的方法。

我有一个测试叫[BackendLayerCustomerAdministrationTests].[test uspMaintainCustomerPermissions throws error when PermissionValue is missing or empty].

这个名字太长了,它破坏了 Deployment Manager

2013-12-05 18:48:40 +00:00 错误指定的路径、文件名或两者都太长。完全限定的文件名必须少于 260 个字符,目录名必须少于 248 个字符。

这个类中还有其他笨拙的测试名称,所以我想从缩短类名开始。

一个更简洁的类名是CustomerTests.

sp_rename在这里没有帮助。

消息 15225,级别 11,状态 1,过程 sp_rename,第 374 行在当前数据库“ApiServices”中找不到名称为“BackendLayerCustomerAdministrationTests”的项目,因为@itemtype 输入为“(null)”。

我该如何改变它?

0 投票
1 回答
124 浏览

sql-server - 如何将数据库中现有数据的日期时间文件转换为 UTC 日期时间?

如何将现有数据的日期时间值更改为 UTC 时间?是否有任何内置的 SQL qry 可供更改?

例如。表中的现有数据

需要将此数据转换为 UTC 时间,在创建过程中记录为 GMT 时间。任何建议都会有所帮助

0 投票
1 回答
347 浏览

tsql - 代码复用 tsqlt/sql 测试

我刚刚开始在 redgate 的 sql 测试中使用tsqlt 。我必须处理遗留数据库中相当大的表(大量列)。将一些假数据插入此类表的最佳做法是什么(“脚本作为”插入语句非常大) - 因此它们会使我的单元测试的“安排部分”字面上不可读。我可以分解出这样的代码吗?还有一种方法不仅可以编写插入语句的脚本,还可以自动填充一些值?谢谢。

0 投票
3 回答
1359 浏览

sql-server - 使用 Teamcity 集成配置 SQL 测试

我正在使用 SQL Test 在 SQL Server 中创建一些单元测试。我与 Teamcity 集成,因此在构建时,它会自动运行 tSQLt 测试。

问题是我们计划为我们所有的商店过程创建数百个单元测试。而且我们不想在每次签入代码时都运行所有单元测试,而 Teamcity 运行构建 + 运行所有单元测试。

有没有办法将集成构建配置为仅运行签入的新单元测试。我需要为此创建一个自定义脚本吗?我似乎无法找到摆脱困境的方法。

还是在没有 Teamcity 自动运行 tSQLt 单元测试的情况下签入的实用解决方案?因此,只需在 DEV 服务器上手动运行新的测试用例(签入后)?对此的扩展是每晚运行批处理以运行所有单元测试。

0 投票
2 回答
156 浏览

database - 执行 tSQLt.RunAll 时的进度反馈

有没有办法在运行时从 tSQLt.RunAll 获得任何反馈。在具有高 % DB 单元测试覆盖率的非常大的项目中,此命令需要很长时间。我希望能够看到(并显示)此命令的进度。可能吗?

0 投票
2 回答
1680 浏览

sql-server - tSQLt - 处理多个 SQL Server 结果集

我正在使用 tSQLt 创建一个 SQL Server 单元测试。

我正在测试的 proc 返回 3 个结果集。我的 webAPI 处理多个结果集并将其发送到 UI 很好。

问题:在我的 SQL Server 单元测试中,如何处理 3 个结果集?如果proc返回一个结果集,就很容易处理了。我使用以下内容:

然后我可以对@ReturnData 临时表进行一系列检查。但是如果它返回多个结果集,我不明白如何处理/测试一个过程。这甚至可能吗?

谢谢。

0 投票
1 回答
496 浏览

tsqlt - spyProcedure 之后的过程没有被调用...如何解决这个问题

我正在尝试使用 spyProcedure ,但它没有按预期工作。以下是场景,请帮助我在哪里做错了?

当我调用上述内容时,它无法执行/调用“EXEC proc4 @id = @id2, @marks = @marks;” 但是当我评论“EXEC tSQLt.SpyProcedure 'proc3', 'SET @marks = 80';”时,它就可以被执行了。

你能帮我在哪里做错了以及如何正确执行它。

谢谢你。