- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Red Gate SQL Developer 开发数据库工具。 SQL Test ,运行 tSQLt 测试的 SSMS 加载项缺少重命名测试类的方法。
我有一个名为 [BackendLayerCustomerAdministrationTests].[test uspMaintainCustomerPermissions throws error when PermissionValue is missing or empty]
的测试.
名字这么长它breaks Deployment Manager .
2013-12-05 18:48:40 +00:00 ERROR The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.
CustomerTests
.
EXECUTE sys.sp_rename
@objname = N'BackendLayerCustomerAdministrationTests',
@newname = N'CustomerTests';
Msg 15225, Level 11, State 1, Procedure sp_rename, Line 374 No item by the name of 'BackendLayerCustomerAdministrationTests' could be found in the current database 'ApiServices', given that @itemtype was input as '(null)'.
最佳答案
tSQLt 测试类是具有特殊扩展属性的模式。
Cade Roux 为 renaming schemas 提供的出色解决方案是创建一个新模式,传输所有对象,然后删除旧模式。
如果我们在这里这样做,我们将失去扩展属性。
让我们为 tSQLt 框架调整它。
如何重命名 tSQLt 测试类
创建一个新的测试类。
EXECUTE tSQLt.NewTestClass
@ClassName = 'CustomerTests';
tSQLt.TestClasses
中看到旧类和新类在一起。看法。
SELECT *
FROM tSQLt.TestClasses;
Name SchemaId
----------------------------------------- ----------
SQLCop 7
BackendLayerCustomerAdministrationTests 10
CustomerTests 14
DECLARE @sql NVARCHAR(MAX) = N'';
SELECT @sql = @sql +
N'ALTER SCHEMA CustomerTests
TRANSFER BackendLayerCustomerAdministrationTests.' + QUOTENAME(name) + N';' +
CHAR(13) + CHAR(10)
FROM sys.objects
WHERE SCHEMA_NAME([schema_id]) = N'BackendLayerCustomerAdministrationTests';
PRINT @sql;
ALTER SCHEMA CustomerTests
TRANSFER BackendLayerCustomerAdministrationTests.[test uspMaintainCustomer validate merged data];
ALTER SCHEMA CustomerTests
TRANSFER BackendLayerCustomerAdministrationTests.[test uspMaintainCustomerPermissions throws error when PermissionValue is missing or empty];
EXECUTE tSQLt.DropClass
@ClassName = N'BackendLayerCustomerAdministrationTests';
SELECT *
FROM tSQLt.TestClasses;
Name SchemaId
----------------------------------------- ----------
SQLCop 7
CustomerTests 14
EXECUTE tSQLt.RunAll;
+----------------------+
|Test Execution Summary|
+----------------------+
|No|Test Case Name |Result |
+--+----------------------------------------------------------------------------+-------+
|1|[CustomerTests].[test uspMaintainCustomer throws error on missing APIKey] |Success|
|2|[CustomerTests].[test uspMaintainCustomerPermissions validate merged data] |Success|
|3|[SQLCop].[test Decimal Size Problem] |Success|
|4|[SQLCop].[test Procedures Named SP_] |Success|
|5|[SQLCop].[test Procedures using dynamic SQL without sp_executesql] |Success|
|6|[SQLCop].[test Procedures with @@Identity] |Success|
|7|[SQLCop].[test Procedures With SET ROWCOUNT] |Success|
-------------------------------------------------------------------------------
Test Case Summary: 7 test case(s) executed, 7 succeeded, 0 failed, 0 errored.
-------------------------------------------------------------------------------
关于redgate - 如何重命名 tSQLt 测试类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20434667/
使用 tSQLt 1.0.5873.27393,我正在尝试为存储过程编写 tSQLt 测试,该过程记录在 CATCH 中捕获的错误。在将错误重新抛出到调用 session 之前阻止到日志表。 我可以成
我最近正在调用一个程序,该程序在代码中包含一个rasierror。抬高筹码的人正处于试捕区。同样,BEGIN TRAN在加注程序之后位于同一 try catch 块中。如果事务中发生错误,则Catch
我是 tSQLt 的新手,在进行真正应该非常简单的测试时遇到了一些困难。 我在存储过程中执行的 SELECT 语句中添加了一列。 如何在 tSQLt 测试中测试该列是否包含在该存储过程的结果集中? 最
我是 tSQLt 的新手,在进行真正应该非常简单的测试时遇到了一些困难。 我在存储过程中执行的 SELECT 语句中添加了一列。 如何在 tSQLt 测试中测试该列是否包含在该存储过程的结果集中? 最
是否可以忽略tSQLt AssertEqualsTable中几乎肯定会有所不同的某些列?示例是来自两个结果表的主键,插入/更新日期戳等。 我一直在通过仅在新的临时表中选择相关列并进行比较来解决此问题,
首先,我应该指出,我对 Atlassian 的 Bamboo 和持续集成总体来说还是个新手。这是我使用其中任何一个的第一个项目。 我使用 tSQLt 框架创建了大量单元测试。我还将 Bamboo 配置
有什么办法可以找到tSQLt的版本号吗?安装在数据库上? 请注意,tSQLt 是 SQL Server 而非 T-SQL 的测试框架。 (请不要投票关闭不相关的副本。) 最佳答案 从源代码来看,似乎有
我正在使用 Red Gate SQL Developer 开发数据库工具。 SQL Test ,运行 tSQLt 测试的 SSMS 加载项缺少重命名测试类的方法。 我有一个名为 [BackendLay
这是场景: 存储过程sproc_a调用sproc_b。然后sproc_b调用sproc_c。典型的嵌套过程。 Sproc_a 执行了 SET XACT_ABORT ON;并使用命名事务。 Sproc_
我有一个曾经可以工作的安装,但现在似乎不行。想知道是否有其他人经历过这种情况。 曾经运行过的测试现在不运行了。似乎什么都没有运行。输出始终如下: +----------------------+ |测
在tSQLt中,我们可以使用AssertEqualsTable命令比较2个表。 但是,有什么方法可以断言表中的值是否已更改了一定数量? 例如: 表A:AccID |余额 表B:AccID |余额 tS
我有一个 tSQLt 测试,我预计它会失败,但它运行成功。当我在过程外运行代码时,它按预期失败了,但是当使用 Run 执行测试时,没有发生错误。 我已阅读问题 tSQLt Testing SQL Se
我最近一直在对调用包含(持久)计算列的表的过程编写一些 tSQLt 数据库单元测试(通过 Red Gate SQL Test),请注意,如果我使用 FakeTable SP,我发现计算列是未填充(它们
用于 SQL 单元测试的 Redgate 工具 SQLTest 现在能够从 SQLCop 添加测试。然而 Redgate 工具只附带了很少的预构建测试。 由于测试只是存储过程,我确信有人已经实现了更多
每当我使用 ExpectException 时,我都会收到以下错误:(还有一个 ROLLBACK 错误 --> 当前事务无法提交且无法回滚到保存点。回滚整个事务。{Private_RunTest,14
我对 tSQLt 数据库单元测试框架还很陌生。我有一个使用 3 个表的存储过程。每个表需要 15 行数据。我还需要另一个假表来验证结果。但是使用 INSERT 准备假表容易出错且难以维护。 为 tSQ
我刚开始使用tsqlt在redgate的sql测试里面。我必须处理遗留数据库中相当大的表(大量列)。将一些假数据插入此类表的最佳做法是什么(“脚本作为”插入语句非常大) - 因此它们会使我的单元测试的
我正在使用 tSQLt 对 t-sql 代码进行单元测试。 很多时候,测试的安排部分非常广泛,我试图将其中的大部分内容推送到设置过程中,以便在类内的测试中重用。 如果设置和测试程序可以“知道”相同的信
exec tSQLt.SetFakeViewOn 'dbo.viewWithIssues'; GO CREATE PROCEDURE TestChanges.[Test Data] AS BEG
当尝试在存储过程中验证用户提供的 GUID 时,使用了一种简单的方法;将用户输入作为 CHAR(36),然后在 TRY CATCH 中将其显式转换为 UNIQUEIDENTIFIER。然后,CATCH
我是一名优秀的程序员,十分优秀!