tsqlt相关内容
我从 AssertEqualsTable 收到此错误“数据类型文本和文本在等于运算符中不兼容." 然后 “'TableCompare' 过程试图返回 NULL 状态,这是不允许的.将返回状态 0." 选择 *进入#Actual来自 [dbo].[InvoiceOut];-- 使预期表成为#actual 结构的空表,因为我们截断了它,所以它应该是空的.选择顶部(0)*INTO #预期从
..
我最近安装了 SQL Server 2017 Express 和 localdb(普遍可用).在尝试安装 tSQLt 框架时,我发现了 SQL Server 2017 中实现的新安全功能:“clr strict security"选项.这个新的安全特性似乎阻止了 tSQLtCLR 程序集的创建. SQL 错误消息指出: CREATE 或 ALTER ASSEMBLY 使用 SAFE 或
..
我真的很喜欢用 tsqlt 来测试 procs 和函数,但我真的希望能够同时执行 SSIS 包并利用 FakeTable 和 AssertEquals 来确定 SSIS 包是否做了它应该做的事情. 有没有人探索过这条路,是否可以从 tsqlt 包装您的测试的事务中调用 dtexec? 解决方案 我相信我可以回答你的问题 Andrey,尽管这来得有点晚.但我相信这会让其他人受益.
..
我有一个tSQLt测试,我希望它会失败,但是可以成功运行.当我在过程外运行代码时,它按预期失败,但是使用Run执行测试时,不会发生错误. 我已阅读问题 tSQLt测试SQL Server安全权限,但是接受的答案不能解决我的问题. 我的测试如下: CREATE PROCEDURE TestSecurity.[test AFDK_Reader cannot read from
..
在TSQLT中,我试图从存储过程中返回结果并将其添加到变量中,以便可以断言它是否与预期结果相符. 我已经看到了很多从函数返回结果的示例,但是没有一个调用存储过程的示例. 有人有可以分享的例子吗? 预先感谢 解决方案 如果要从存储过程中获取变量,一种方法是使用out参数 CREATE PROC MyTest (@myVar int output) AS BEGIN
..
我正在编写一些tSQLt测试,并通过问题是,当我运行测试时,它应该失败,因为存储过程尚不存在.当我在Sql Server Management Studio中使用tSQLt运行测试时,它会失败,就像应该这样: The module 'test_ValidCustomerName_CustomerIdIs1' depends on the missing object 'dbo.AddCust
..
我最近安装了SQL Server 2017 Express和localdb(通用).在尝试安装tSQLt框架时,我发现了SQL Server 2017中实现的新安全功能:"clr严格安全性"选项.这项新的安全功能似乎阻止了tSQLtCLR程序集的创建. SQL错误消息指出: 使用SAFE创建或更改装配'tSQLtCLR'的装配或 EXTERNAL_ACCESS选项失败,因为"clr严格
..
faketable函数未重新分配为正常状态.现在,我使用过法制表的所有表都包含我在单元测试插入中使用的值的内容.它有很多表,这使我的数据库无用.请帮助解决此问题或至少是其原因.这让我非常担心在CI部署过程中使用它,也许更重要的是在我们的本地开发工作中使用它. 解决方案 这只能处理将表放回原处(因为这是OP和我俩都遇到的问题),但是胡乱丢下删除表的行可能会得到它使用其他对象类型. DE
..
我从AssertEqualsTable收到此错误,“文本类型和文本的数据类型在等于运算符中不兼容." 然后 “'TableCompare'过程试图返回状态NULL,这是不允许的.将返回状态0." select * into #Actual from [dbo].[InvoiceOut]; --make expected table an empty tabl
..
我有一个像这样的表 tab1 create table tab1(ID int identity(1,1), Type varchar(10),IsValued bit) tab1: ID Type IsValued ---------------- 1 S 1 2 R 0 3 R 0 4 S 1 5 S 1 6 R 0 7
..
我最近正在调用一个在代码中包含rasierror的过程.抬高筹码的人正处于试捕区.同样,BEGIN TRAN在加注程序之后位于同一尝试捕获块中.如果事务中发生错误,则Catch块旨在回滚事务.这样做的方法是检查@@ TRANCOUNT是否大于0我知道它已经开始了事务并且需要ROLLBACK.使用tSQLt进行测试时,@@ TRANCOUNT始终> 0,因此,如果它碰到了CATCH块,则将执行ROL
..
我真的很喜欢tsqlt来测试proc和函数,但是真的很希望能够执行SSIS程序包并利用FakeTable和AssertEquals来确定SSIS程序包是否达到了预期的功能. 有人探索过这条路吗,有可能通过tsqlt将测试包装在其中的事务调用dtexec吗? 解决方案 我相信我可以回答您Andrey的问题,尽管这来得有点晚.但是我相信它将使他人受益. 我们正在使用RedGate
..
我目前正在寻找使用 tSQLt 来为某些SQL Server SQL代码编写一些单元测试的方法. 阅读文档后,似乎不支持能够使用参数调用测试用例,而不是为每个参数组合编写单独的测试用例. (出于这个问题,请撇开您是否认为将参数传递给测试用例与为每个参数组合编写一个单独的参数相比是个好主意) 例如,在 NUnit 中,您可以使用[TestCase("", -1, false)] [Tes
..
当我尝试将tSQLt安装到现有数据库上时,出现以下错误: 主数据库中记录的数据库所有者SID与 记录在数据库“"中的数据库所有者SID.你应该纠正 通过使用ALTER重置数据库所有者来解决这种情况 授权声明. 解决方案 当从备份还原的数据库且数据库所有者的SID与主数据库中列出的所有者SID不匹配时,可能会出现此问题.这是使用错误消息中建议的"ALTER AUTHORIZATION"
..
用于SQL单元测试的Redgate工具SQLTest现在提供了从 SQLCop 添加测试的功能,但是Redgate工具这些测试只有很少的预构建. 由于测试只是存储过程,所以我确定有人实现了更多的测试. 您愿意分享吗?任何人? 解决方案 我写了SQLCop.我一直在Redgate与优秀人员一起工作.最初,我提供了5个(或大约)测试作为概念验证.从那时起,我还提供了SQLCop附带
..
我正在使用 Red Gate SQL Developer 开发数据库工具. SQL测试,它是运行tSQLt的SSMS加载项测试,缺少重命名测试类的方法. 我有一个名为[BackendLayerCustomerAdministrationTests].[test uspMaintainCustomerPermissions throws error when PermissionValue i
..
tSQLt领域的新手(很棒的工具集),在我要为其进行测试的存储过程中遇到了一个小问题. 如果由于某种原因,我有一个连接到多个数据库甚至多个SQL服务器(链接服务器)的存储过程. 在这种情况下是否可以使用tSQLt进行单元测试? 解决方案 我已经评论了,但是我想补充一点.因此,正如我已经说过的,您可以做适合单个事务的任何事情. 但是对于您的情况,我建议为每个跨数据库/实例对
..