问题标签 [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 投票
2 回答
279 浏览

tsqlt - tSQLt AssertEqualsTable 对 Geography 数据类型的支持

当我创建两个包含地理列并使用 tSQlt.AssertEqualsTable 的表时,测试失败并显示:

失败:数据类型的运算符无效。运算符等于等于,类型等于地理。{,1}

有谁知道 tSQLt 是否支持用于表比较的地理数据类型?

0 投票
5 回答
3110 浏览

sql-server - tSQLt faketable 不重置表映射时如何恢复?

faketable 函数没有重新分配为正常。我使用 faketable 的所有表现在都包含我在插入单元测试时使用的值的内容。它有很多表,它使我的数据库毫无用处。请帮助解决此问题或至少解决其原因。这让我对在我们的 CI 部署过程中使用它感到非常紧张,也许更重要的是在我们的本地开发工作中。

0 投票
1 回答
13936 浏览

tsql - TSQLT 单元测试 - 数据类型文本和文本在等于运算符中不兼容

我从 AssertEqualsTable 中收到此错误“数据类型文本和文本在等于运算符中不兼容。”

然后

“'TableCompare' 过程试图返回 NULL 状态,这是不允许的。将返回状态 0。”

--相关表格信息的一部分

0 投票
5 回答
105287 浏览

sql-server - master数据库中记录的数据库所有者SID与数据库所有者SID不同

当我尝试将 tSQLt 安装到现有数据库上时,出现以下错误:

master 数据库中记录的数据库所有者 SID 与数据库 '' 中记录的数据库所有者 SID 不同。您应该通过使用 ALTER AUTHORIZATION 语句重置数据库 '' 的所有者来纠正这种情况。

0 投票
1 回答
507 浏览

group-by - T-SQL 按一系列可能值对结果进行分组

不知道如何表达这个问题:

我有一个查询,例如

和一群喜欢的人

这使:

我想做的是使用“范围”对我的结果进行“拆分”,例如:

有没有一种简单的方法可以做到这一点?

0 投票
1 回答
777 浏览

sql-server - tsqlt 错误处理胜过存储过程(单元)错误处理程序

当尝试在存储过程中验证用户提供的 GUID 时,使用了一种简单的方法;将用户输入作为 CHAR(36),然后在 TRY CATCH 中将其显式转换为 UNIQUEIDENTIFIER。CATCH 然后使用 RAISERROR 使用自定义错误描述冒泡错误。

手动运行存储过程,一切都按预期执行,并引发错误。

创建一个 tSQLt 测试以调用该单元(具有 GUID 验证的过程)并处理输出的错误并与预期的错误进行比较,不断失败并出现事务错误;tSQLt 检测到错误并在 tSQLt 框架内处理。

这向我表明,tSQLt 正在处理 CAST 到不同数据类型的失败的严重性,并且它阻止了存储过程中的 TRY/CATCH 来处理它。就像嵌套过程有时会忽略子过程中的 TRY/CATCH 并冒泡到父过程;例如,如果子进程。引用了一个不存在的表。

有没有人有类似的问题?只是为了验证我目前的思路。

我已经删除了测试并且它正在其他地方进行测试,但这给我的数据库单元测试造成了一个“漏洞”。

最后,我想我应该提一下,我知道我可以对提供的 CHAR 参数执行不同的验证,而不是 CAST,并以这种方式引发错误,但这是 tSQLt 查询而不是 tSQL 查询。

编辑

代码示例:

@sGUID 是一个 CHAR(36) 并且是传递给过程的参数。

SELECT 行从不触发 CATCH tSQLt 似乎事先干预并引发 ROLLBACK 事务错误。

0 投票
1 回答
1013 浏览

tsqlt - tSQLt AssertEqualsTable 不检查排序

我为实际和预期定义了两个表,具有完全相同的架构。我将两行插入到预期的表中,ID 为 2、1。

我跑

填充实际然后

比较结果。

即使数据的顺序不同(实际 ID 为 1、2),测试也通过了。

我通过在测试中添加 SELECT * FROM 实际和 SELECT * FROM 预期并使用 tSQLt.Run '{test name}' 自行运行测试来确认数据不同。

有谁知道这是否是一个已知的错误?显然它应该检查每行,所以应该检查排序。返回的所有其他列都是 NULL,它只是包含值的 ID 列。

0 投票
2 回答
1652 浏览

tsql - tsqlt - 为单元测试创​​建单独的数据库

我已经开始使用 tsqlt,我的问题是可以有一个单独的数据库,只包含测试的东西吗?(表/sp's/程序集等)。

此测试数据库将与实际/目标数据库位于同一实例上。

如果我尝试伪造表格,则会收到以下错误:

有没有人有这方面的经验?

谢谢。

0 投票
2 回答
673 浏览

triggers - 带有 tSQLt 的 FakeTable 删除触发器

我已经开始使用 tSQLt 并且即将测试触发器。我调用 FakeTable 过程并进行测试,但未执行触发器。如果不使用 FakeTable,则执行触发器。这似乎真的很糟糕,我找不到任何信息表明有任何方法可以读取它们。

然后我认为触发器已被 FakeTable 删除,但我可以在调用后重新创建它们并在我的测试中执行以下代码:

我收到以下错误:“数据库中已经有一个名为'MoveDataFromAToB'的对象。{MoveDataFromAToB,14}(还有一个回滚错误->当前事务无法提交,也无法回滚到保存点。回滚整个事务。{Private_RunTest,60})"

任何对 tSQLt 有任何经验并知道此问题的任何解决方法的人吗?

0 投票
1 回答
798 浏览

cruisecontrol.net - tSQLt 的成功退出代码是什么

我正在尝试将 tSQLt / SQLTest 与 CruiseControl.NET 集成我的测试正在运行,并且我已经编写了 xsl 文件来显示结果,但是如果任何测试失败,我需要知道如何将构建标记为失败。

我的 CCNet 高管是:

运行测试.sql:

测试运行,我有一个后续任务,它在 xml 中生成结果,然后合并到构建日志中:

那么如何让整体构建失败呢?